- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux开发环境介绍—gautoconfautomake
Linux开发环境介绍 简介(一)gcc/g++, Makefile, autoconf,automake
Introduction to Linux Dev Env. (Ser. 1)
CompileDistribution.
Delivered By
LiHao
@founder(Shanghai)
Agenda
概述 (Overview)
gcc/g++ 及相关参数介绍
autoconf, automake, Configure , Makefile, Libtools, GDB介绍
内存泄露检测工具介绍 (Valgrind, etc.)
Lex介绍
YACC介绍
gcc/g++
gcc/g++
gcc默认是处理.c的文件,使用c的方式来进行链接。
g++默认是处理.cxx/.hxx的文件,使用c++方式来进行链接。
编译器在执行编译时(How to)
1)进行预处理,输出 .i文件 ,主要处理一些宏定义之类的代码。
预处理器:cpp
2) 将预处理后的文件生成汇编文件 ,.s文件。
编译器:egcs
gcc/g++
3) 将汇编文件编译成目标文件 .o文件。
汇编器as
4) 链接目标代码,生成可执行文件。
链接器 ld
实例介绍 --- (filename: test.cpp)
#include stdio.h
#define TEXT “hello”
#define SIZE 1024
int main (int argc, char* argv[])
{
printf (“the Message:%s, the size:%d”, TEXT, SIZE);
return 0;
}
gcc/g++ options introduction---compile
注意(?)
关于所以选项都为大小写敏感,及 –E 和–e代表不同的编译选项(如果存在着这两个选项)。
-E 进行预处理,例如:对编译选项#ifdef #else #endif ,#define进行处理,但不产生输出文件,如果要查询 预处理后文件,将该结果进行重定向即可。
g++ -E test.cpp test_after_pre.text
-S 进行预处理并对该文件进行汇编处理。
g++ -S test.cpp ls –l *.s
-c 进行预处理,编译,汇编并生成目标文件(.o文件),通常我们在makefile文件中使用此项命令进行编译并生成目标文件(当然可以使用makefile默认编译规则)。
g++ -c test.cpp ls –l *.o
-o 指定编译后输出可执行文件名。
g++ -c test.cpp –o test
gcc/g++ options introduction---directory/file opts
目的:指定在编译时所寻找缺失文件的所在目录或文件。
-I dir 在编译指定查找头文件所在的目录。
g++ -c test.cpp –o test –I/usr/local/includes
-i filename 指定头文件,相对于#include “filename”
g++ -c test.cpp –o test -itest.h
-L 在链接时指定查找库文件所在的目录
g++ -c test.cpp –o test –L/usr/local/libs
-l Filename 指定链接时库文件名称 libFilename.a(可以使用-l libFilename或者-lfilename)
g++ -c test.cpp –o test –lpthread -lnsl
gcc/g++ options introduction---directory/file opts
选择匹配的顺序(?)
1)当前路径
2)用户指定的路径(即我们参数说指定的)
3)环境变量指定的路径,即 PATH, LD_LIBRARY_PATH, 多个路径使用 : 分割.
我们可以使用export,命令设置自己的环境变量,亦可以编辑~/.bashrc或者.profile等文件来设置,每次登陆后就使用当前的环境
4)系统默认的路径
5)ld.so的环境变量(运行时)
6)编程时候手动指定路径
More (reference to ? )
gcc/g++ options introduction---debug opts
目的:产生调试信息。
-g 以操作系统的本地格式,产生调试信息. GDB能够
文档评论(0)