Linux 下C和C++编程

  最近在学Linux,决心用这个系统进行开发工作,所以,无论是进行开发工作,还是在oj上刷题,学会linux下的c和c++编程都是很有必要的。

1,先有linux环境
搭minGW和cygwin都有点麻烦,最最简单的办法还是装个真正的linux,用虚拟机也好,在网络上的另一台机器也好。这样不仅快,而且你有了真正的环境。
2.会C/C++语言 ;
3.入门阶段熟悉gcc命令行,最基本的参数,如,-g,-W,-O,-o,-c 建议看man gcc,了解其中每个命令的意思,以便熟练使用。

4.提高阶段,你需要开始了解,并熟悉ld,gdb,编写基本的Makefile,了解make程序,编程方面学习*nix系统IPC,信号行为;

5.高级阶段:编程方面学习Linux内核源码结构,驱动开发,进而能精简内核,了解各种library的作用和用法。编译器方面:了解系统各个主要库如 libstdc++,glibc2(libc.so),ld-linux.so.2(动态链接器),了解gcc其它各种option.ld各种, option.编写复杂的Makefile,熟悉并能使用automake和autoconf.

另外,分享一下GNU的c和c++编译器的区别和联系。

GCC and g++分别是gnu的c & c++编译器 GCC/g++在执行编译工作的时候,总共需要4步

1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]
3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]

1 :两者都可以编译C和C++代码,但是请注意:
(1).后缀为.c的,GCC把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。

(2).编译阶段,g++会调用GCC,对于c++代码,两者是等价的,但是因为GCC命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。

2 :对于__cplusplus宏,实际上,这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如上所述,如果后缀为.c,并且采用GCC编译器,则该宏就是未定义的,否则,就是已定义。

3 :编译可以用GCC/g++,而链接可以用g++或者GCC -lstdc++。因为GCC命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用GCC,二者等价。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值