linux环境下c++的编写、调试以及makefile多文件连编需要注意的问题

最近刚开始接触Linux C++,发现其与windows C++有太大的差别。这里是自己的一些总结,如果有新人看到,希望能够帮到您。

1、gcc编译器简介

生成一个.out需要将源文件依次进行预处理、编译、汇编、链接,并最终生成可执行文件。下面将对各步进行具体的说明:

预处理(Pre-Processing):根据预处理命令(#开头)修改源文件# gcc -o hello.i -E hello.c

编译(Compiling):语法检查,并将源文件翻译成汇编文件# gcc -o hello.s -S hello.i

汇编(Assembling):将汇编文件转换为目标文件(二进制)# gcc -o hello.o -c hello.s

链接(Linking):编址和符号链接,生成可执行文件# gcc -o hello hello.o

注意:1)这里的语法均只列举最常规的形式;2)在进行gcc命令时,如果您使用的是C++的库建议使用g++命令;3)“-o“只是指明源文件经过操作后生成的目标文件名以及其文件格式,并不属于编译操作可以将其放到命令的末尾,在读命令先读gcc或者g++,然后跳过-o以及后面的目标文件接着读后面的指令,最后再读-o及其后面的目标文件这样就会容易理解。

2、makefile

关于makefile这里只对其文件格式和容易理解错的地方进行说明:

文件格式示例为{

edit: main.o A.o
[Tab]g++ -o edit main.o A.o
main.o: A.h
[Tab]gcc -c main.cpp
A.o: A.h
[Tab]gcc -c A.cpp
clear:
[Tab]rm edit main.o A.o}

注意:1)edit是指最终的目标文件名;2)命令行的开头一定要用[Tab]进行开头;3)依赖文件只写windows下每个源文件#include中的文件即可,不必包含源文件即.cpp文件;4)编译器(例如:g++ or gcc or cc)的选择一定要正确,其中g++支持c和c++,而gcc、cc仅支持c。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值