Tag Info

Hot answers tagged

58

You can't just ./fork.c (it's not a program; it's the source for a program): this assumes that the file is a script (which it isn't) and treats it accordingly. (However, as noted in another answer, there are compilers (like Tiny C Compiler) that can execute C code without explicitly compiling it) Since it's a C program, you have to compile the program. Try ...


21

That's not a program, that's the source code for a program. C is a compiled language, meaning it must be "compiled" into machine-readable instructions before you can run it. As you are using C, the "C Compiler" (cc) can do this. cc -o fork for.c # compile the code chmod +x fork # ensure it it executable ./fork # run the compiled program ...


15

There isn't a universal way, but you can make an educated guess by looking for things only done by one compiler. GCC is the easiest; it writes a .comment section that contains the GCC version string (the same string you get if you run gcc --version). I don't know if there's a way to display it with readelf, but with objdump it's: objdump -s --section ...


5

On Debian, there are apt-cross and dpkg-cross from Emdebian, which let you set up cross-compilation for many architectures (you get cross-compilers and libraries). On Ubuntu, there's a crosschain for ARM, and a project to improve on this. You can also create toolchain using crosstool-ng which is not link to a distribution.


4

You can try using the strings command. It will create a lot of text output; by checking it you might guess the compiler. pubuntu@pubuntu:~$ strings -a a.out |grep -i gcc GCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3 Here I know it's compiled with gcc but you can always redirect strings output to a file and examine it. There is one very good utility called peid ...


2

You can also use this clever script that counts the numbers of various CPU instructions used by the binary. It is based on parsing objdump output. Beware that it can take quite a long time to finish if you use it on a big binary.


1

Never do this, use a remote repository instead, i.e git. But if you insist, here's two working solution, Use scp protocol within VIM, i.e gvim scp://konimi@vim.org//var/www/html/tips/add_tip.php Mount remote directory through SSH protocol, i.e sshfs, that way you can edit it locally, and you open another shell to execute make.


1

This side of the screen: $ node --version v.0.8.16 $ npm --version 1.1.69 $ npm install less npm http GET https://registry.npmjs.org/less npm http 200 https://registry.npmjs.org/less npm http GET https://registry.npmjs.org/less/-/less-1.3.3.tgz npm http 200 https://registry.npmjs.org/less/-/less-1.3.3.tgz npm http GET ...


1

Going back from machine code to the source language is called decompilation. Disassembly (going from machine code to assembly language) can be done with objdump -d; objdump is part of the standard binutils suite of development tools. While a decompiler can be a useful tool in the process, decompiling the code with the intent of modifying it and recompiling ...


1

Wow, some project! But OK, some toys to play with: (Use all with a binary file as first argument.) bits: xxd -b # xxd for hexdump (?): `-b` is `-bits` octal: od # octal dump hexadecimal: hexdump # these two share the hexdump(1) man page hd # symbolic link to hexdump od -t x1 # `-t` for type, `x1` for ...


1

I don't think Debian has anything exactly comparable to this. Here is Chapter 10 of Debian Policy: Files, which has some information about compile time flags. Note the sentence It is up to the package maintainer to decide what compilation options are best for the package. In short, Debian doesn't tell its developers what flags to use.


1

There are two methods . Both will give the same result objdump -s --section .comment binary Using readelf command, readelf -S binary will display the 40 section headers in the binary . Note the serial number of .comment section header. In my system , it showed as 27 (may be different for your case) readelf -x 27 binary -> which will display the ...



Only top voted, non community-wiki answers of a minimum length are eligible