gcc提供了一个选项-save-temps,可以保存编译过程中的中间文件,这里面就包括了预处理之后的源码。 在阅读QEMU代码的时候,可以在configure的过程中加入这个选项,比如 ./configure --target-list=arm-softmmu --extra-cflags=-save-temps 由于QEMU支持的平台很多,target-list指定多个目标可能会多次编译,后生成的中间文件...
在这个系列的教程中,我们一共讲解了 5 个不常见但是很有用的 gcc 命令行选项:-Save-temps-g-Wextra-Wfloat-equal@file 记得花时间练习使用每一个选项,同时不要忘了浏览 gcc 手册上面所提供的关于它们的全部细节。你是否知道或使用其他像这样有用的 gcc 命令行选项,并希望把它们在全世界范围内分享?请在下面...
gcc -o main.o -c *.c -save-temps=obj -Wall -fdata-sections -ffunction-sections && gcc -o test_gc main.o -Wl,--gc-sections -Wl,-Map=test_gc.map -T default.lds -Wl,--print-gc-sections /usr/bin/ld: removing unused section '.rodata.cst4' in file '/usr/lib/gcc/x86_64-lin...
-save-temps=<arg> 不用删除指定的中间文件. no-canonical-prefixes 在构建其他 gcc 组件的相对前缀时,不要规范化路径. -pipe 使用管道而不是中间文件 -time 为每个子流程的执行计时. -specs=<file> 使用 <file> 的内容覆盖内置规范. -std=<standard> 假设输入源用于<standard>。 --sysroot=<directory> ...
-save-temps :不用删除中间文件。 -save-temps=<arg> :不用删除指定的中间文件。 -no-canonical-prefixes :在构建其他 gcc 组件的相对前缀时,不要规范化路径。 -pipe :使用管道而不是中间文件。 -time :为每个子流程的执行计时。 -specs=<file> :使用 <file> 的内容覆盖内置规范。 -std=<standard> :假...
# gcc -save-temps foo.c -o foo# ls foo*foo foo.c foo.i foo.s GCC 支持的其它调试选项还包括-p和-pg,它们会将剖析(Profiling)信息加入到最终生成的二进制代码中。剖析信息对于找出程序的性能瓶颈很有帮助,是协助Linux程序员开发出高性能程序的有力工具。在编译时加入-p选项会在生成的代码中加入通用剖...
-save-temps=<arg> :不用删除指定的中间文件。 -no-canonical-prefixes :在构建其他 gcc 组件的相对前缀时,不要规范化路径。 -pipe :使用管道而不是中间文件。 -time :为每个子流程的执行计时。
-save-temps:自动输出预处理文件、汇编文件、对象文件,编译正常进行 -fsyntax-only:只测试源文件语法是否正确,不会进行任何编译操作 -ffreestanding:编译成独立程序,而非宿主程序 语言标准 -ansi:ANSI标准 ...
它非常简单,可以使用-save-temps标志轻松生成。 假设我想为main.c文 件生成所有中间文件,所以我需要遵循给定的命令: linuxmi@linuxmi/home/linuxmi/www.linuxmi.com⚡ gcc -save-temps main.c 8. 使用 -Werror 将警告转换为错误 在测试时,我们程序员往往会忽略可能表明应用程序中存在漏洞和安全威胁的警告。
使用选项-save-temps可以输出所有中间结果文件。使用-save-temps选项生成的中间文件,与对应的源文件具有相同的文件名,但文件扩展名分别为.i、.s和.o,分别表示为预处理输出、汇编语言输出和对象文件。 仅检查语法 如果调用GCC时使用-fsyntax-only选项,就不会执行预处理、编译、汇编和链接。只会测试输入文件的语法是否...