none
VC编译设置/p参数(开启预处理输出)后导致不生成obj文件的问题 RRS feed

  • 问题

  • 各位好!

    我之前提过关于自动生成非托管C++的托管包装的问题。之后琢磨了一阵SWIG,结果发现由于无法处理嵌套类,SWIG也无法胜任。

    为此我不得不尝试其它方法,为了使代码看起来更清晰,我希望能够获得预处理后的源代码。

    为此,我在项目属性中设置了Preprocess to file选项,即/P参数。

    问题在于,我之前未设置/P参数时,编译过程顺利。但设置/P后,编译失败。错误内容类似:

    LINK : fatal error LNK1181: cannot open input file '..\..\..\Lib\Release\assert.obj'

    经观察,设置/P后,编译cpp文件时不生成obj文件。因此导致后来的链接失败。

     

    我尝试了以下方法来处理此问题:

    1. 取消预编译头文件。

    2. 清理工程后重新生成。

     

    以上办法均无效,请各们支招。谢谢!

     

    2011年4月27日 7:23

答案

  • 已搞定,设置/P选项会取消编译过程(仅预处理),所以不会有生成.obj文件,不过很土鳖的是微软居然还调用一把link...不可理解,害我一直以为出错了,到src目录下一找,预处理文件却全在那。郁闷...浪费我半天时间。。。
    • 已标记为答案 泉子 2011年4月28日 9:45
    2011年4月28日 9:45

全部回复

  • 泉子,

    您好!欢迎在MSDN中文论坛发贴。

    据我所知Project->Properties->C/C++->Preprocessor->Generated Preprocessed File不能设置为With Line Numbers/P.

    请您把它设置为NO.

       如果您的问题解决了,请把有用的回答标记为答案!

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月28日 8:15
    版主
  • 老兄,我想要预处理输出啊...
    2011年4月28日 9:05
  • 已搞定,设置/P选项会取消编译过程(仅预处理),所以不会有生成.obj文件,不过很土鳖的是微软居然还调用一把link...不可理解,害我一直以为出错了,到src目录下一找,预处理文件却全在那。郁闷...浪费我半天时间。。。
    • 已标记为答案 泉子 2011年4月28日 9:45
    2011年4月28日 9:45