【原创】Ubuntu编程初感笔录
前些日子开始在Linux环境下进行简单的编程开发,在过程中做了一些简单的笔录,无奈公司项目太忙了,当时也没有来得及把笔录整理成博文。
1、路径问题,一直提示在这个路径下找不到相应的文件。写了一个HelloWorld开始我的Linux编程开发,把vim IDE和gcc编译工具安装好了之后,对源代码进行编译,试了很多次却一直提示在路径下找不到我的cpp文件,郁闷,一直以为是路径的问题,还特意查了一些Linux文件路径方面的资料,觉得这路径应该没有错的,难道是其他问题?把cpp文件改成c文件,编译OK。原来是使用gcc编译cpp而导致,cpp文件的编译还需要安装上g++。狂晕,无奈基础不过关,而且之前一直在visual studio下开发对编译原理等了解不够。在开发过程中,可以使用 sudo apt-get install build-essential 来安装必要的编译环境。
2、编译多个C文件,链接成一个应用程序。Gcc -g -Wall helloWord.c helloFunc.c -o helloWorld。
3、makefile的问题,在c文件所在的文件夹下面添加makefile文件,在命令行终端输入“make”,Make工具能按照makefile的规则来编译和链接c文件及其生成的o文件,“make 参数”参数是在makefile文件中定义的操作。
4、makefile在编写的时候要注意一个情况,最终链接成的应用程序的名字须与包含main函数的c文件的名字或者所生成的o文件一样,否则不能生成相应的应用程序。make工具是一个好东西,使用它可以帮你方便的编译整个工程,它通过makefile中定义的对象之间的依然关系,决定是否需要所有文件重新编译,这样如果一个大的项目工程某部分更改了,就不需要把其他部分也编译一次,毕竟那是很痛苦的事。
5、可以在makefile中指定编译使用的编译器和一些编译选项,例如CC=gcc表示使用的是gcc编译器,而CFLAGS=-Wall 则表示编译的选项,和使用命令行编译是一样的道理。
6、要运行生成以后的应用需要,不能直接通过在命令行终端输入cd 转到相应路径,然后输入应用程序名的方式来启动应用程序,而是不管目前命令行终端无论转到什么路径下了如果需要运行应用程序,就算已经转到应用程序的路径之下,通过直接输入应用程序的名字也运行不了。无论何种情况需要提供完整的路径,例如/home/allen/Desktop/HelloWorld,在ubuntu的命令行终端大小写是区分的。(第6点有待验证)
7、gcc是 GNU Complier Collection的缩写,意思GNU多种编译器的集合,是c、c++、fortran、java和Ada等语言以及他们对应的库的编译器的集合。使用gcc编译c源码是直接gcc就能编译,因为一开始的时候gcc是 GNU C Complier的缩写,也就是gcc是c的原生编译器。而编译c++、fortran等语言需要把他们的标准库在编译的时候链接进来,或者也可以使用它们指定的编译前端进行编译、例如gcc -g -Wall HelloWorld.cpp -lstdc++ -o Hello 这个-lstdc++就是通过-l编译选项把libstdc++.a这个c++标准库在链接的时候给一同链接进去了,同样也可以使用g++这样的前端像使用gcc一样方便的编译源文件g++ -g -Wall HelloWorld.cpp -o Hello,同样fortran语言也有一个gfortran的前端编译标志,像g++一样使用。
8、库的链接。例如gcc -g -Wall HelloWorld.c /usr/lib/libieee.a -o Hello,这是一种比较麻烦的写法,一般使用上面第七点起到的编译选项-l,然后紧接着添加标准库文件中lib后面的文件名,如前面的例子,gcc -g -Wall HelloWorld.c -lieee -o Hello。
OK,有时间了再来继续学习Linux下的编程开发。
posted on 2010-07-18 20:24 IamEasy_Man 阅读(318) 评论(0) 收藏 举报
浙公网安备 33010602011771号