Bjö*_*lex 5 c++ linker g++ vxworks c-preprocessor
我有一个源文件,我使用选项预处理-E和-P(使用GCC 4.1.2为基于vxWorks的嵌入式平台).所有其他选项与编译文件时相同.这些选项是:
-Wall
-march=pentium
-nostdinc
-O0
-fno-builtin
-fno-defer-pop
-g
-c
-o
Run Code Online (Sandbox Code Playgroud)
以及所有包含路径.现在,当我编译这个预处理文件时,生成的对象文件比直接编译原始文件要小得多(约30%).然后当我链接程序时,链接器会抱怨缺少符号(全部在用户代码中),这在使用原始源文件时也不会发生.为什么会有区别?有没有办法让这项工作?
您确定您没有遗漏-D命令行中的任何定义吗?您的结果将与由于条件而未编译的部分一致。
另一种可能性(因为您没有具体命名编译器)是您gcc -E在 vxWorks 环境中使用通用交叉编译器而不是特定于架构的交叉编译器。跨 gcc 将预定义一些您需要的变量gcc -E。
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |