linux开发环境介绍--gautoconfautomakx

linux开发环境介绍--gautoconfautomakx

ID:39970373

大小:857.31 KB

页数:30页

时间:2019-07-16

linux开发环境介绍--gautoconfautomakx_第1页
linux开发环境介绍--gautoconfautomakx_第2页
linux开发环境介绍--gautoconfautomakx_第3页
linux开发环境介绍--gautoconfautomakx_第4页
linux开发环境介绍--gautoconfautomakx_第5页
资源描述:

《linux开发环境介绍--gautoconfautomakx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux开发环境介绍简介(一)gcc/g++, Makefile, autoconf,automakeIntroductiontoLinuxDevEnv.(Ser.1)Compile&Distribution.DeliveredByLiHao@founder(Shanghai)Agenda概述(Overview)gcc/g++及相关参数介绍autoconf,automake,Configure,Makefile,Libtools,GDB介绍内存泄露检测工具介绍(Valgrind,etc.)Lex介绍YACC介绍gcc/g++gcc/g++gcc默认是处理.c

2、的文件,使用c的方式来进行链接。g++默认是处理.cxx/.hxx的文件,使用c++方式来进行链接。编译器在执行编译时(Howto)1)进行预处理,输出.i文件,主要处理一些宏定义之类的代码。预处理器:cpp2)将预处理后的文件生成汇编文件,.s文件。编译器:egcsgcc/g++3)将汇编文件编译成目标文件.o文件。汇编器as4)链接目标代码,生成可执行文件。链接器ld实例介绍---(filename:test.cpp)#include#defineTEXT“hello”#defineSIZE1024intmain(intargc,char

3、*argv[]){printf(“theMessage:%s,thesize:%d”,TEXT,SIZE);return0;}gcc/g++optionsintroduction---compile注意()关于所以选项都为大小写敏感,及–E和–e代表不同的编译选项(如果存在着这两个选项)。-E进行预处理,例如:对编译选项#ifdef#else#endif,#define进行处理,但不产生输出文件,如果要查询预处理后文件,将该结果进行重定向即可。g++-Etest.cpp>test_after_pre.text-S进行预处理并对该文件进行汇编处理。g++-St

4、est.cpp&&ls–l*.s-c进行预处理,编译,汇编并生成目标文件(.o文件),通常我们在makefile文件中使用此项命令进行编译并生成目标文件(当然可以使用makefile默认编译规则)。g++-ctest.cpp&&ls–l*.o-o指定编译后输出可执行文件名。g++-ctest.cpp–otestgcc/g++optionsintroduction---directory/fileopts目的:指定在编译时所寻找缺失文件的所在目录或文件。-Idir在编译指定查找头文件所在的目录。g++-ctest.cpp–otest–I/usr/local/in

5、cludes-ifilename指定头文件,相对于#include“filename”g++-ctest.cpp–otest-itest.h-L在链接时指定查找库文件所在的目录g++-ctest.cpp–otest–L/usr/local/libs-lFilename指定链接时库文件名称libFilename.a(可以使用-llibFilename或者-lfilename)g++-ctest.cpp–otest–lpthread-lnslgcc/g++optionsintroduction---directory/fileopts选择匹配的顺序()1)当前路

6、径2)用户指定的路径(即我们参数说指定的)3)环境变量指定的路径,即PATH,LD_LIBRARY_PATH,多个路径使用:分割.我们可以使用export,命令设置自己的环境变量,亦可以编辑~/.bashrc或者.profile等文件来设置,每次登陆后就使用当前的环境4)系统默认的路径5)ld.so的环境变量(运行时)6)编程时候手动指定路径More(referenceto)gcc/g++optionsintroduction---debugopts目的:产生调试信息。-g以操作系统的本地格式,产生调试信息.GDB能够使用这些调试信息。g++-c–gtest

7、.cpp–otest-ggdb以本地格式(如果支持)输出调试信息,尽可能包括GDB扩展。g++-c–ggdbtest.cpp–otest-glevel请求生成调试信息,同时用level指出需要多少信息。默认的level值是2。g++-c–gtest.cpp–otestgcc/g++optionsintroduction---linkopts目的:指定链接时所使用的方式。-static此选项将禁止使用动态库。优点:程序运行不依赖于其他库缺点:文件比较大-shared(-G)此选项将尽量使用动态库,为默认选项优点:生成文件比较小缺点:运行时需要系统提供动态库在我们

8、现行系统中使用的是动态链接方式,因此可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。