本文目录一览:
- 1、linux o 文件不是ELF文件 那个怎么汇编?
- 2、linux下的so,o,lo,a,la文件有什么区别?
- 3、linux下 为什么要生成.o文件 .o文件和.c文件还有生成的可执行文件有啥区别啊?
- 4、c语言 linux .o文件 不是ELF格式的 那这是什么文件?
- 5、linux下的so,o,lo,a,la文件有什么区别
- 6、linux中.o文件如何打开
linux o 文件不是ELF文件 那个怎么汇编?
首先.o文件目标文件,也是ELF,.o就是汇编生成的,但是二进制文件不一定可执行
用.o生成可执行文件不叫汇编,叫链接,.o与运行所需的库进行链接最终生成可执行文件或者库。
操作的话就用gcc就好了,不同的参数执行不同的功能,比如说-o,-shared等,网上资料很多,用好gcc或者g++工具就ok
linux下的so,o,lo,a,la文件有什么区别?
它们的具体区别并不算太大,只是链接后的不同,具体区别如下:
o:是编译的中间目标文件将多个中间目标文件,可以链接成可执行文件。
so:文件表示动态链接库。
a:代表的是静态函数库,当同时运行多个程序并且都使用到同一个函数库的函数时,内存中就会有同一函数的多份副本,会消耗大量宝贵的内存。
lo:使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息。
la:使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息
linux下 为什么要生成.o文件 .o文件和.c文件还有生成的可执行文件有啥区别啊?
linux下.c只是简单的文本文件,.o是编译之后的二进制文件,操作方法如下;
1、首先在电脑中打开linux,然后安装gcc g++编译工具。
2、接着创建一个后缀名为.c的文件。
3、然后打开文件,准备编辑代码vim c.c。
4、编写一个最简单的代码,包含头文件和main函数,gcc c.c -o test 编译代码。
5、然后输入./test 运行程序,打印结果如下图所示,就完成了。
c语言 linux .o文件 不是ELF格式的 那这是什么文件?
.o文件是编译过程中的一个中间文件
一次完整的编译,可以分为编译和链接两个阶段
编译就是.c生成.o,一般用gcc
链接就是.o生成elf,一般用ld
不过用gcc也可以完成链接,gcc会识别文件扩展名调用ld的
更细分,还有cpp的预编译,as的汇编编译
cpp gcc as ld这个是完整的一次编译过程
linux下的so,o,lo,a,la文件有什么区别
o: 编译的目标文件
a: 静态库,其实就是把若干o文件打了个包
so: 动态链接库(共享库)
lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息
la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息
linux中.o文件如何打开
1、首先找到所需要打开的.o后缀的文件。
2、然后打开编译器这里使用c-free5,选择新建文件,保存为cpp格式。
3、点击运行后发现在文件的末尾,出现了相同名字的.o后缀的文件。
4、由此可推断当多种编程语言希望混合编译时,就可以通过分别编译成.o文件,再链接(link)成可执行文件。
5、所以想要打开它,就需要找到原先的cpp文件使用IDE进行编译,形成一个exe的可执行文件后,方可打开。