Linux下C++的编程——开发环境搭建与第一个程序
2017-03-20 09:34
627 查看
开发工具的安装
环境 Distributions版本:CentOS 6.7
Linux内核片:2.6.32-573.3.1.el6.i686
一般Linux安装完之后默认就已经安装了GCC(GNU Compiler Collection),你可以查看一下gcc和g++的版本号检查gcc和g++是否已经安装。
[luowf@luoweifu ~]$ gcc -v gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) [luowf@luoweifu ~]$ g++ -v gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)1
2
3
4
1
2
3
4
如果未安装,在Linux系统链接网络的时候可通过以下命令安装开发工具集:
yum groupinstall "Development Tools"1
1
第一个HelloWorld程序
说到程序,第一个肯定就是HelloWorld,那我们也从HelloWorld开始吧,写一个最简单的Hello程序,并编译和运行。
编写第一个程序
[luowf@luoweifu Cplusplus]$ pwd /home/luowf/workspace/Cplusplus //在vim中编写第一个HelloWorld程序 [luowf@luoweifu Cplusplus]$ vim HelloWorld.cpp 1 #include <iostream> 2 3 int main() 4 { 5 std::cout << "Hello Wolrd!" << std::endl; 6 return 0; 7 } //编译程序 [luowf@luoweifu Cplusplus]$ g++ HelloWorld.cpp [luowf@luoweifu Cplusplus]$ ls a.out HelloWorld.cpp test1 test2 [luowf@luoweifu Cplusplus]$ ./a.out Hello Wolrd! [luowf@luoweifu Cplusplus]$1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
g++与gcc的区别
在上一篇文章中其实已经分别介绍了gcc和g++,说gcc是C的编译器,g++是C++的编译器。那是不是说gcc只能编译编译C语言,而g++只能编译C++呢?其实不是,gcc也可以编译C++程序,而C++是C的基础上发展而来的,所以g++也不可能编译不了C语言。它们之间的区别有如下几点: 1. 后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序。注意,虽然c++是c的超集,但是两者对语法的要求是有区别的,C++的语法规则更加严谨一些。
2. 编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。用gcc进行编译,在选项中加上要链接的库,也可以编译c++。如上面的HelloWorld程序我们也可以用以下的命令进行编译:
[luowf@luoweifu Cplusplus]$ gcc -lstdc++ HelloWorld.cpp [luowf@luoweifu Cplusplus]$ ls a.out HelloWorld.cpp test1 test2 [luowf@luoweifu Cplusplus]$ ./a.out Hello Wolrd! [luowf@luoweifu Cplusplus]$1
2
3
4
5
6
1
2
3
4
5
6
gcc不会定义__cplusplus宏,而g++会
这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如上所述,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义。
参考文章:http://www.linuxsky.org/doc/dev/200804/298.html
程序的编译及常用命令
将源代码编译成目标文件,不进行链接gcc -c HelloWorld.cpp1
1
在编译的时候,依据操作系统给予优化执行速度
gcc -O HelloWorld.cpp -c1
1
将目标文件链接成二进行(可执行)文件
gcc -o HelloWorld HelloWorld.o -lstdc++1
1
HelloWorld是可执行文件名,HelloWorld.o是目标文件名;如果是.c后缀的C源文件不用加-lstdc++,如果是.cpp后缀的C++源文件,要加-lstdc++。
在进行二进制文件制作时,将链接的函数库与相关的路径填入
(.cpp文件)gcc -lstdc++ HelloWorld.cpp1
1
或
(.c文件)gcc HelloWorld.c -lm -L /usr/Lib -I /usr/include1
1
说明:
-lm 指的是libm.so或libm.a这个函数库文件;
-L 后面接的路径是刚才上面那个函数库的搜索目录;
-I 后面的是源码内的include文件(也就是包含的math.h头文件)所在的目录;
HelloWorld.cpp代码如下:
1 #include <iostream> 2 #include <math.h> 3 4 int main() 5 { 6 std::cout << "Hello Wolrd!" << std::endl; 7 float value = sin (3.14 / 2); 8 std::cout << "value:" << value << std::endl; 9 return 0; 10 }1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
将编译链接的结果输出成某个特定的文件名
gcc -lstdc++ -o HelloWorld HelloWorld.cpp1
1
helloWorld为输出的文件名
在编译的时候,输出较多的信息说明
gcc -lstdc++ -o HelloWorld HelloWorld.cpp -Wall1
1
相关文章推荐
- Linux下C++的编程——开发环境搭建与第一个程序
- Linux编程环境介绍(3) -- linux下的c/c++程序开发
- Mac OSX上利用Docker和Netbeans 搭建编译和开发 linux c/c++程序环境
- Eclipse C/C++开发环境搭建----Linux版 and linux下的eclipse c编程中的no binaries错误
- Linux编程环境介绍(3) -- linux下的c/c++程序开发
- j2me手机游戏编程第一课(开发环境搭建和第一个MIDlet程序 视频)
- 图解Linux下如何搭建C#开发环境(还能写C/C++/Java等程序,只要安装相应的插件和编译器即可)
- 关于在linux环境中用eclipse搭建c++程序开发平台的方法
- linux 编程学习笔记(1)搭建c(c++)开发环境
- Linux上搭建C/C++IDE开发环境2
- linux下搭建eclipsec++开发环境
- 搭建android开发环境,第一个android程序
- Linux下使用Eclipse开发第一个C++程序
- Eclipse C/C++开发环境搭建----Linux版
- Unix/Linux C++应用开发-虚拟机开发环境搭建
- Android开发环境搭建:SDK在线离线安装+在Eclipse中配置ADT+第一个Android程序运行
- linux下eclipse c++开发环境搭建
- Spring flex 搭建服务 之 编程环境配置和我的第一个程序(第二章,第一节)
- Linux 嵌入式驱动开发 -- 环境搭建及模块编程初步
- Linux环境下使用eclipse开发C++动态链接库程序