‘壹’ linux下多个.o文件如何链接生成可执行程序
你好!
很简单,使用-o选项就可以了。如果有a.o,
b.o,
c.o,
d.o4个.o文件,则使用以下命令:
gcc
-o
(生成的目标名称)test
a.o
b.o
c.o
d.o
希望对你有所帮助,望采纳。
‘贰’ linux下 为什么要生成.o文件 .o文件和.c文件还有生成的可执行文件有啥区别啊
linux下.c只是简单的文本文件,.o是编译之后的二进制文件,操作方法如下;
1、首先在电脑中打开linux,然后安装gcc g++编译工具。
‘叁’ Linux C编译生成的Object文件(.o)文件,是否相当于java的JAR之类的库文件
虽然我不懂java,但是Linux C编译生成的.o文件是二进制可重定位文件,把一些相关的打包成.so(动态库)或是.a(静态库),其实只是简单的打了一个包,没有什么其它复杂处理。如果谁调用了,其中的函数之类的东西,就需要链接到这个库文件或者.o文件,这样生成二进制可执行文件
‘肆’ linux o 文件不是ELF文件 那个怎么汇编
首先.o文件目标文件,也是ELF,.o就是汇编生成的,但是二进制文件不一定可执行
用.o生成可执行文件不叫汇编,叫链接,.o与运行所需的库进行链接最终生成可执行文件或者库。
操作的话就用gcc就好了,不同的参数执行不同的功能,比如说-o,-shared等,网上资料很多,用好gcc或者g++工具就ok
‘伍’ linux 使用.o文件
gcc foo.c -o foo.o表示将foo.c文件进行编译、链接,产生foo.o的可执行文件。linux下没有后缀一说。gcc foo.c命令直接产生a.out可执行文件,而“-o foo.o”这个参数用于将a.out文件赋一个你想要的文件名。此命令已经包含编译、链接的过程,直接生成可执行文件了(Windows下就是.exe文件)输入以下命令来查看文件格式:# file foo.ofoo.o: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
‘陆’ linux下能生成两种.o的文件 一个是我用gcc编译生成的 另一个是makefile生成的,这俩一样么
一样的,makefile只是一个脚本,它实际调用的是gcc。
但你这里用“gcc -o helloword.o helloworld.c”调用的是linux(x86的)的标准gcc,而你的makefile脚本中的gcc版本是arm_v5t_le-gcc(是用在arm嵌入式处理器的)。两个处理器不一样,自然编译出的helloworld.o不一样,前者只能在x86电脑上运行,后者只能在arm嵌入式处理机中运行。
你把makefile中的“CC=arm_v5t_le-gcc”改成“CC=gcc”然后再make,之后肯定能运行。
‘柒’ linux gcc编译好C文件后生成.o目标文件,但是在执行中($./test)出现没有那个文件或目录,请大神帮忙。
.o文件是不能被执行的, c的源码要经过编译和链接才能生成可执行文件,你只是编译了,没有链接,这个文件相当于Windows下的test.obj而已。gcc -Wall test.c -o test
‘捌’ linux内核编译 .c如何生成.o文件
gcc -Wall adc.c -o adc.o
或者在makefile中写下:
adc.o:
gcc -Wall adc.c -o adc.o
然后make,注意adc.o:下面的空格必须用Tab键
‘玖’ linux 生成的.o文件为什么带锁标志
那可能是编译源代码文件成.o时,是用root用户身份执行的gcc/g++命令,所以产生的.o文件也属于root用户。属于root用户的文件在Linux图形界面的文件管理器中,会有一个带锁的标志。