2010-02-09 94 views
1

我目前正在开发一个平台独立项目,并且我们经常遇到以下问题: 当Windows工作人员处理的代码不是由代码的其他任何部分调用时将不会被编译,因此不会触发编译错误。一旦将这段代码上传到svn服务器,Linux程序员就可以获取并编译这段代码,它们将会出现构建错误。看起来他们的编译器编译了包含在代码库中的所有东西,而Visual Studio只会编译用过的代码。编译Visual Studio中的所有代码部分

是否有任何方法强制Visual Studio编译即使未使用的代码,只要它属于我目前正在使用的项目?或者只是属于解决方案的每个代码文件都会有帮助。

编辑:

忘了提,以防它是相关的:

  • 我们使用:Visual Studio 2008的教授。编辑。
  • C++
  • CMake的创建解决方案
  • Windows 7的64位

感谢您的时间!

问候, 扬

+0

我怀疑“编译一切”的区别。唯一可能发挥作用的是模板在实例化之前的深度分析。或者你谈论**链接器**错误? VS可能会更好地消除死代码。请澄清 – peterchen 2010-02-09 13:34:25

回答

-1

如何用预处理器定义的工作?我也从事一个跨平台项目。有一些我无法使用的UNIX方法,并且有一些WIN API调用UNIX不能使用。所以我们有这样的事情:

void DoSomething() 
{ 
    #ifdef WIN 
    // do Windows specific code 
    #else 
    // do UNIX specific code 
    #endif 
} 
+0

感谢您的回答,但这个问题不是关于代码不是跨平台兼容的。这是关于在两种平台上编译的代码,但不会在Visual Studio中捕获,因为Visual Studio不会尝试编译它。因此,我们最终将代码上传到SVN,而不会为Linux程序员编译代码,因为他们的编译器似乎试图编译Visual Studio忽略的代码。 -Jan- – Jan 2010-02-09 10:20:44

相关问题