linux下多个.o文件如何链接生成可执行程序

作者&投稿:巩师 (若有异议请与网页底部的电邮联系)
【c语言】怎样才能将多个.o文件一起链接生成一个.exe文件??~

你如果在linux系统或mac系统比较简单,直接gcc 编译就行,后面不管是源文件,汇编,目标文件都行。
windows下相对烦一些,如果你使用vc,vs的IDE工具,没研究过不清楚。
如果你使用是mingw-gcc编译器就简单了,比如你使用的codeblocks,就安装了windows下的gcc编译器mingw-gcc,在安装路径 。。。。/codeblocks/mingw/bin/下有个mingw32-gcc.exe,你在终端打开,用这个命令直接编译就行,如:mingw32-gcc -o a a.o b.o c.o

建立你在linux下学习c语言,c语言本来就是为unix而生的,所以学习它当然在unix下最合适

gcc 1.o 2.o 3.o -LS 1.out


1.out就是可执行文件了

方法和详细的操作步骤如下:

1、第一步,找到需要打开的.o后缀文件,见下图,转到下面的步骤。

2、第二步,执行完上面的操作之后,打开编译器,并在此处使用c-free5,选择新文件,并将其保存为cpp格式,见下图,转到下面的步骤。

3、第三步,执行完上面的操作之后,单击“运行”,发现在文件末尾出现了一个具有相同名称.o后缀的文件,见下图,转到下面的步骤。

4、第四步,执行完上面的操作之后,可以推断,当多种编程语言希望混合编译时,可以将其编译成.o文件,然后链接到可执行的文件,见下图,转到下面的步骤。

5、第五步,执行完上面的操作之后,如果要打开,则需要先找到原始cpp文件并使用IDE对其进行编译,以形成exe可执行文件,然后才能将其打开,见下图。这样,就解决了这个问题了。



gcc -c x1.c x2.c 只编译不连接

gcc x1.c x2.c -o output_filename 编译后连接成可执行文件

gcc x1.o x2.o -o output_filename 连接成可执行文件

=================================================

#include"test.c" 是什么???

=================================================

#include"b.c" // 这句根本就是多余的,删除即可编译连接通过

很简单,使用-o选项就可以了。如果有a.o, b.o, c.o, d.o4个.o文件,则使用以下命令:
gcc -o (生成的目标名称)test a.o b.o c.o d.o

gcc -o test a.o, b.o, c.o, d.o
生成的test文件是连接后的可执行文件。
./test就可以执行了


linux 下\/tmp\/cc63nlbf.o:in function main'是什么问题
.o文件是GCC编译生成的默认后缀,考虑是否是程序代码问题,tmp下由程序(软件)生成临时数据,如果这个编译出来的文件不是你编译的,你可以忽略这个问题。如果有什么问题的话,欢迎来“Linux就该这么学”的官方论坛提问,那里大神非常多。

c语言 linux .o文件 不是ELF格式的 那这是什么文件?
.o文件是编译过程中的一个中间文件 一次完整的编译,可以分为编译和链接两个阶段 编译就是.c生成.o,一般用gcc 链接就是.o生成elf,一般用ld 不过用gcc也可以完成链接,gcc会识别文件扩展名调用ld的 更细分,还有cpp的预编译,as的汇编编译 cpp gcc as ld这个是完整的一次编译过程 ...

linux 下 C++ 多个源文件 编译问题
你犯了个低级错误 ,try是 关键字 不能用作 class 名字 ,你只要改成Try就行了 哈哈

linux 多个iso文件mount到一个文件夹下,例如rhel 5个iso文件mount到一个...
这是正常现像,相互覆盖, 以最后一个mount为准 如果你想把内容mount到一个文件夹下 那么你只有先把 iso 文件合并成一个,然后再mount

怎么在red hat linux 下并行运行多个c程序??
fork()函数,生成父子进程 或者在shell里调用.\/a &进入后台运行 如果有参数,在a程序里写system("path\/b");就实现了对b程序的调用,path是b存放的路径 如果程序相互关联的,编译的时候要生成.o然后把三个程序链接成一个程序 gcc -c -o a.o a.c gcc -c -o b.o b.c ld ab a.o b.o...

linux多个文件打包命令linux多个文件打包
选项:-c建立新的归档文件 -r向归档文件末尾追加文件 -x从归档文件中解出文件 -O将文件解开到标准输出 -v处理过程中输出相关信息 -f对普通文件操作 -z调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩 -Z调用compress来压缩归档文件,与-x联用时调用compress完成解压缩 linux怎么压缩某个目录...

linux增加组命令linux组命令
Linux怎么用一个命令建立多个用户?linux一条命令不能创建多个用户组。Linux中创建用户组的命令是groupadd,这个命令只能创建一个用户组。每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在...

linux 下面怎么用gdb调试多个.c文件?
从调试的角度来看,使用 GAS 的好处是可以在生成的目标代码中包含符号表(symbol table),这样就可以使用 GDB 和 DDD 来进行源码级的调试了。要在生成的可执行程序中包含符号表,可以采用下面的方式进行编译和链接:[xiaowp@gary code]$ as --gstabs -o hello.o hello.s [xiaowp@gary code]$ ld...

linux 下文件夹解释
\/proc\/interrupts 正在使用的中断,和曾经有多少个中断。\/proc\/ioports 当前正在使用的I\/O端口。举例,使用下面的命令能读出系统的CPU信息。cat \/proc\/cpuinfo \/bin bin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。\/boot 这里存放的是启动Linu...

linux挂载目录怎么挂载linux挂载目录
4、在Linux下安装samba-client客户端 yuminstallsamba-client 5、安装cifs-utils软件包 yuminstallcifs-utils 6、在Linux下创建一个挂载点 mkdir\/mnt\/Windows 7、挂载Windows上的共享目录d:redhat_disk到Linux下的\/mnt\/Windows目录下 mount-tcifs-ousername=tommy\/\/192.168.1.123\/redhat_disk\/mnt\/...

肥乡县17739376685: 怎样才能将多个.o文件一起链接生成一个.exe文件 -
司马莘美乐: 你如果在linux系统或mac系统比较简单,直接gcc 编译就行,后面不管是源文件,汇编,目标文件都行.windows下相对烦一些,如果你使用vc,vs的IDE工具,没研究过不清楚.如果你使用是mingw-gcc编译器就简单了,比如你使用的codeblocks,就安装了windows下的gcc编译器mingw-gcc,在安装路径 ..../codeblocks/mingw/bin/下有个mingw32-gcc.exe,你在终端打开,用这个命令直接编译就行,如:mingw32-gcc -o a a.o b.o c.o 建立你在linux下学习c语言,c语言本来就是为unix而生的,所以学习它当然在unix下最合适

肥乡县17739376685: 请教一个Makefile的问题,就是如何从多个.o文件生成目标文件? -
司马莘美乐: CC := ${CC} CFLAG+=-c -o BINDIR=../bin OBJDIR=../obj SRCLIST = $(wildcard *.c) OBJLIST = $(SRCLIST:%.c=$(OBJDIR)/%.o) TARGET=main \ 把main和Checkdate换成你自己想生成的程序名, Checkdate 多个程序的话,记得写上\这个符号 ...

肥乡县17739376685: Linux链接多个文件到一个目录 -
司马莘美乐: 连接目录和通配符都可以.假定有一个目标是/tmp/dst ln -s *.120 /tmp/dst 如果是数据在所在的目录是/src下面所有的要连接过去 ln -s /src/* /tmp/dst

肥乡县17739376685: 如何用gcc将两个.o的文件链接成一个纯二进制的的文件? -
司马莘美乐: 除非你自己写一个编译器,要不然是不可能链接出不带elf的二进制文件.只要你在linux下就只能得到elf格式的.

肥乡县17739376685: linux怎么将一个文件夹链接到另一个文件夹上? -
司马莘美乐: linux 链接分为硬链接和软链接之分,命令如下: 1、硬链接:ln file1 file2 2、软连接:ln -s file1 file2 他们的区别在于,对于目录 只能做软链接 (ln -s bbb ccc) Linux 软连接与硬连接的区别: 对于一个文件来说,有唯一的索引接点与之对应,而...

肥乡县17739376685: LInux 如何使用GCC编译器将一个文件夹下的100个.o文件打包成一个静态库文件(.a) -
司马莘美乐: 你已经用gcc编译出目标文件了,用ar工具打包成.a文件就行了啊,示例:如上图,假设我有test1.c,test2.c两个源文件,先使用gcc -c *.c将源文件编译成目标文件,可以看到,生成了test1.o,test2.o两个目标文件,然后,使用ar命令:ar crv libtest.a *.o将该目录下的所有目标文件打包生成了libtest.a文件.这样,你在编译的时候就可以直接使用这个静态库了.

肥乡县17739376685: .o是什么文件? -
司马莘美乐: 你好,.o文件又称对象文件,是可执行文件..o文件就是对象文件,是可重定向文件的一种,通常以ELF格式保存,里面包含了对各个函数的入口标记,描述,当程序要执行时还需要链接(link).链接就是把多个.o文件链成一个可执行文件.在...

肥乡县17739376685: 在Linux下同时为多个文件创建软连接 -
司马莘美乐: 制作软连接需要ln命令,命令格式为 ln -s targetfile linkfile 比如,如下命令 ln -s /www/abc.sh doabc 上面的命令会在当前目录下生成一个doabc文件,这个文件是软连接,使用ll查看当前目录下的文件时,这个文件会显示成 doabc->/www/abc.sh *的形式.

肥乡县17739376685: 如何实现linux下的C++多文件编译 -
司马莘美乐: 要分开编译,然后链接,比如$ g++ print.cpp -c$ g++ test.cpp -c$ g++ test.o print.o -o mytest这里的-c表示只编译.因为你有两个文件,所以编译两次.编译后会生成.o的文件.然后把这些在链接起来就可以了.-o表示输出的文件.

肥乡县17739376685: linux如何把多个.o编译动态库 -
司马莘美乐: 命令格式如下:gcc 1.o 2.o 3.o -o libxx.so -shared [-fPIC]

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网