GCC在链接的时候以section为单元处理,所以可以尝试使用-ffunction-sections/-fdata-sections将每个函数或者符号创建成独立的section,然后结合选项-Wl,--gc-sections让链接器忽略用不到的section,这样就可以减少目标可执行程序的大小。其中-Wl表示将后面的参数传递给链接器,所以也可以直接设置链接器选项。 注意这个并不是...
$gcc -shared -Wl,-soname,libhello.so.1 -o libhello.so.1.0 hello.o 另外再建立两个符号连接: $ln -s libhello.so.1.0 libhello.so.1 $ln -s libhello.so.1 libhello.so 这样一个libhello的动态连接库就生成了。最重要的是传gcc -shared 参数使其生成是动态库而不是普通执行程序。 -Wl 表示后...
GCC 常用选项 Fins 1 人赞同了该文章 目录 收起 0. 指定输出文件名称、路径 1. 在预处理完成后停止 2. 在汇编完成后停止 3. 在编译完成后停止 4. 生成可执行文件 5. 指定连接脚本 6. 添加头文件搜索路径 7. 添加宏定义 8. 传递参数给连接器 9. 生成.map文件 10. 修改C语言标准 参考链接 0. ...
关闭程序中的向量化的选项;gcc -O3会自动打开 -ftree-vectorize选项 -fno-inline 忽略代码中的inline关键字,该选项使编译器将内联函数以普通函数正常对待,等同于无优化选项的处理。 -fshort-enums 支持给enum类型分配它声明的值域范围的字节数,即enum类型等于大小足够的最小整数类型。 typedef enum num{ one = 1...
7、-shared参数 编译动态库时要用到,比如gcc -shared test.c -o libtest.so 8、几个相关的环境变量 PKG_CONFIG_PATH:用来指定pkg-config用到的pc文件的路径,默认是/usr/lib/pkgconfig,pc文件是文本文件,扩展名是.pc,里面定义开发包的安装路径,Libs参数和Cflags参数等等。
生成 -Wall 选项不包括的警告 尽管 gcc 编译器的 -Wall选项涵盖了绝大多数警告标记,依然有一些警告不能生成。为了生成它们,请使用 -Wextra选项。比如,下面的代码:#include <stdio.h>#include <stdlib.h>int main(){ int i=0; /* ... some code here ... */ if(i); return...
1 常用的编译选项 2 其他编译选项 2.1 -x language 通常gcc通过源文件的后缀来判断该源文件是由什么语言编写的(虽然Linux中后缀没有意义),换句话说,如果我们的文件名不带后缀,那么gcc就无法判断源文件的语言类型了,也就无法完成编译。举例来说:例1我用c语言编写了一段代码,将其保存在文件名为main.lll中,执行gc...
GCC有很多附加选项可以使用,包括总体选项、警告选项、优化选项以及体系结构相关选项。其中常用的附加选项如...
盘点一下gcc有哪些常用选项 gcc有哪些常用选项,今天,就来给大家盘点一下。 -E表示预处理,处理所有以井号键开头的代码,常见的比如把头文件展开。 hello.c #includeint main() { printf("helloworld "); return 0; } 预处理: gcc -E hello.c -o hello.i...
但是如果同时使用-Wextra 选项来进行编译:gcc -Wall -Wextra test.c -o test 会生成下面这样一个警告: test.c:In function‘main’:test.c:10:8:warning:suggest braces around empty body in an ‘if’ statement [-Wempty-body]if(i); 从上面的警告清楚的看到,-Wextra 选项从内部启用了-Wempty-body ...