我正在构建跨平台产品,其中一个要求是跨Windows(win32,AMD64和IA61)。该产品是相对简单的CLI,但我们有一个单独的构建团队,他们从CVS中检出代码并构建在单独的构建环境中。我能够在一个平台(AMD机器)上成功构建(使用Visual C ++ 2005)。但是一旦我签入代码,检查构建失败。
构建失败的原因是因为属性表中错误地指定了包含库路径。特别是属性页中链接器下的输出文件文件夹被错误地指定。因此,这些库构建在与其他项目所期望的不同的文件夹中。
然而,除了源代码,我还会每次都检查.sln文件(以及后来的.vcproj文件)。如果我在构建不成功的文件夹中打开.sln文件,那么我可以成功构建(预登记)之间没有区别。事实上使用windiff我看不到两个构建文件夹之间的任何区别(除了一些.ncb和cvs日志文件)。
所以知道发生了什么事吗? VC ++ 2005在哪里使用include目录从ifsln获取输出文件夹路径? CVS是否以某种方式干扰了这个过程?还有其他我可以尝试的东西。
提前致谢。
答案 0 :(得分:1)
刚刚更新问题已解决。根本原因是.vcproj文件没有在CVS中检查!!这是存储单个项目设置的地方(我认为这是在.sln文件中完成的)。
答案 1 :(得分:0)
我认为问题可能是您在一个构建配置中更改了设置(例如x86-Release)但忘记将其更改为另一个配置(例如ia64-Debug),并且在配置更改时,您有这个问题。
我要检查你的位置的另一件事是项目依赖性。如果以正确的方式设置它们,即使更改输出文件夹,VS也会在输出的确切位置查找项目输出。
答案 2 :(得分:0)
您是否以ASCII格式签入任何二进制文件?
往返CVS往返可以破坏错误标记为ASCII的二进制文件,因为CVS对ASCII文件执行字符处理(例如,为您的操作系统提供正确的行代码结束)。即使在所有Windows环境中也可能发生损坏。
有关详细信息,请参阅CVS FAQ中的二进制部分。