1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > linux用gcc编译完怎么运行 linux下使用gcc编译运行C/C++程序

linux用gcc编译完怎么运行 linux下使用gcc编译运行C/C++程序

时间:2024-04-16 11:27:21

相关推荐

linux用gcc编译完怎么运行 linux下使用gcc编译运行C/C++程序

编译C

首先,程序编译过程有:

1.预处理(展开宏,头文件,检查代码是否有误)

2.编译(将.c转为汇编代码.s)

3.汇编(将汇编代码.s转为机器代码.o)

4.链接(将所有机器代码.o和库文件链接成一个可执行程序)

一般编译常常包括了:预处理,编译,汇编

在linux系统中,编译c使用gcc编译器,如下:

gcc -o out in1.c in2.c //gcc编译以及链接(对in1文件和in2文件进行编译生成out.bin文件,“-o”:表示生成可执行文件)gcc-c in1.c in2.c -o out.o //gcc编译不链接(对in1文件和in2文件文件进行编译生成out.o文件,

“-c”:表示只生成*.o文件 第二个"-o":表示制定生成哪个.o文件)

(若只对单个文件编译及链接,也可以直接输入:gcc in.c,系统默认编译生成a.out可执行文件)

若需要在arm板里运行,就需要在linux系统中使用arm-linux-gcc交叉编译才行:

arm-linux-gcc -o out in1.c in2.c //gcc编译以及链接(对in1文件和in2文件进行编译生成out.bin文件,“-o”:表示生成可执行文件)

arm-linux-gcc -c in1.c in2.c -o out.o //gcc编译不链接(对in1文件和in2文件文件进行编译生成out.o文件,

“-c”:表示只生成*.o文件 第二个"-o":表示指定生成哪个.o文件)

-I //表示添加头文件位置

一般编译程序时,说找到不到某个头文件时,编译时直接加上"-I 该头文件目录",即可编译OK

-l //指定库文件,l后面紧跟库文件,比如数学库:-lm,对应着libm.so文件,只需要去掉lib和.so即可

编译程序时,一般说找不到某函数定义时,说不定就是没加库文件原因,比如找不到cos()函数定义,则编译时直接加上"-lm"即可

编译C++

方法和上面类似,使用g++编译器,只不过该编译器会自动链接C++库

注意:若需要c++11标准,需要gcc 4.8以上

以编译两个C文件(a.c和hello.c)为示例:

vi a.c //编辑a.c , 它将被hello.c调用,前提是这两个文件必须在同一目录下

内容如下:

vi hello.c //编辑hello.c

内容如下:

gcc -o hello hello.c a.c //gcc编译以及链接(对hello.c文件和a.c文件进行编译生成hello.bin文件,“-o”:表示生成可执行文件)

./hello//运行hello.bin

效果如下所示:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。