Welcome 微信登录

首页 / 操作系统 / Linux / Ubuntu下用GCC编译笔记

今天跑到Ubuntu下用GCC编译,费了很大事。主要对参数传递过程不太明白,原来是先生成可执行文件,之后再传递参数./particleMovie parameters...,而之前要经过预编译,编译,生成可执行文件等过程。 可以直接用gcc particleMovie.c -o particle直接生成,而引入参数要加-I,引入当前文件夹下include文件夹为-I./include,同时为了使sqrt函数可以正确被解析,不仅要引入math.h头文件,还要在编译时加上-lm,m代表math,-l是引入库文件。对gcc使用引用如下。编译:第一步、是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程:gcc -E hello.c -o hello.i预处理的宏定义插入到hello.i中第二步、是将hello.i编译为目标代码,这可以通过使用-c参数来完成:gcc -c hello.i -o hello.o也可以通过源文件直接生成gcc -c hello.c第三步、是将生成的目标文件链接成可执行文件:gcc hello.o -o hello也可以通过源文件直接生成gcc -o hello hello.c警告:1、-pedantic 选项,那么使用了扩展语法的地方将产生相应的警告信息2、-Wall 使用它能够使GCC产生尽可能多的警告信息3、-Werror,它要求GCC将所有的警告当成错误进行处理库依赖:1、Linux下的大多数函数都默认:头文件放到/usr/include/目录下而库文件则放到/usr/lib/目录下2、GCC在编译时必须有自己的办法来查找所需要的头文件和库文件。-I选项可以向GCC的头文件搜索路径中添加新的目录。例如,如果在/home/xiaowp/include/目录下有编译时所需要的头文件,http://ubuntuone.cn为了让GCC能够顺利地找到它们,就可以使用-I选项:gcc -o test test.c -I /home/xiaowp/include-L选项向GCC的库文件搜索路径中添加新的目录例如,如果在/home/xiaowp/lib/目录下有链接时所需要的库文件libfoo.so,为了让GCC能够顺利地找到它,可以使用下面的命令gcc -o test test.c -L /home/xiaowp/lib -lfoo值得好好解释一下的是-l选项,它指示GCC去连接库文件libfoo.so。