gpt4 book ai didi

c++ - 编译先前预处理的文件更改输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:30 25 4
gpt4 key购买 nike

我有一个源文件,我使用选项 -E-P 对其进行了预处理(使用 GCC 4.1.2 作为基于 vxWorks 的嵌入式平台)。所有其他选项与我编译文件时相同。这些选项是:

-Wall  
-march=pentium
-nostdinc
-O0
-fno-builtin
-fno-defer-pop
-g
-c
-o

以及所有包含路径。现在,当我编译这个预处理文件时,生成的目标文件比我直接编译原始文件小得多(大约 30%)。然后当我链接程序时,链接器提示缺少符号(全部在用户代码中),这在使用原始源文件时也不会发生。为什么会有差异?有什么方法可以使它起作用吗?

最佳答案

您确定您没有遗漏命令行中的任何 -D 定义?您的结果将与由于条件而未编译的部分一致。

另一种可能性(因为您没有具体命名编译器)是您使用的是通用 gcc -E 而不是针对您的 vxWorks 环境的 arch-specific 交叉编译器。 cross-gcc 将预定义一些gcc -E 所需的变量。

关于c++ - 编译先前预处理的文件更改输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9230149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com