我们再用-static编译这个程序,再看看可执行程序的依赖关系。 由上图可见,加入-static选项以后,链接器将动态库全部换成了静态库。 第二种用法:使用-Wl,-Bstatic,-Wl,-Bdynamic选项,将部分动态库设置为静态链接。 gcc使用-Wl将参数传递给连接器。链接器使用-Bdynamic强制连接动态库,-Bstatic强制连接静态库。所以部...
任何-O 选项都不应打开此选项,因为它可能会导致依赖于数学函数的 IEEE 或 ISO 规则/规范的精确实现的程序输出不正确。 默认值为 -fno-unsafe-math-optimizations。 -ffinite-math-only 允许对假设参数和结果不是 NaN 或 +-Infs 的浮点算术进行优化。 任何 -O 选项都不应打开此选项,因为它可能导致依赖于 IEEE...
"soft"选项:表明不使用FPU硬件,而是使用GCC的整数算术运算来模拟浮点运算。此选项为默认,因此一定要修改为softfp。 "softfp"选项:表明要使用FPU硬件来做浮点运算,只是,函数的参数传递到整数寄存器(r0-r3)中,然后再传递到FPU中。 "hard"选项:表明要使用FPU硬件来做浮点运算,并且,函数的参数直接传递到FPU的寄存器(s0...
此选项以stabs格式声称调试信息,但是不包括gdb调试信息. -gstabs+ 此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息. -ggdb 此选项将尽可能的生成gdb的可以使用的调试信息. -static 此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么 动态连接库,就可以运行. -share 此选项将尽...
GCC 编译器通常 gcc 命令的形式在终端(Shell)中使用,它有很多选项 常见的编译选项 : -E 只执行预处理 (expand : 展开宏) -c 编译或汇编源文件,不执行链接 (compile :编译) -S 完成编译但不执行汇编,产生汇编文件 (sourcecode :源代码) -o file指定输出的文件为file(output : 输出的目标文件) ...
这里用到另一个选项:-E-E:预处理之后就停下来 所以我执行gcc -E myfile.c 但是这样直接执行之后它会把预处理之后文件的内容直接显示到显示器上,这样不太好看。 所以我们也可以-o指定一下文件名,把它放到对应文件里 那对于预处理之后的文件,一般后缀为.i ...
2.1 GCC/G++ 编译选项 编译选项 说明 -c 只进行预处理、编译和汇编,生成 .o文件 -S 只进行预处理和编译,生成 .s 文件 -E 只进行预处理,产生预处理后的结果到标准输出 -C 预处理时不删除注释信息,常与 -E 同时使用 -o 指定目标名称,常与 -c、-S 同时使用, 默认是 .out -include file 插入一个文件...
GNU调试器可利用该信息。-shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.-O0-O1-O2-O3编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高-w 不生成任何警告信息。-Wall 生成所有警告信息。 好了,本篇博文的分享到这里就结束了,感谢大家的支持!
GCC命令的选项非常多,可以根据不同的需求进行选择,下面将对GCC命令的选项进行简述。 1. 常用选项 (1)-c:只编译不链接,生成目标文件。 (2)-o:指定输出文件名。 (3)-g:生成调试信息。 (4)-Wall:开启所有警告信息。 (5)-Werror:将警告信息视为错误。 (6)-O:优化选项,包括-O0、-O1、-O2、-O3等级别...
但是如果同时使用-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 ...