Visual C 的构建问题从 CVS 签入和签出后的项目

发布于 2024-08-15 11:37:45 字数 519 浏览 6 评论 0原文

我正在构建一个跨平台产品,要求之一是跨 Windows(win32、AMD64 和 IA61)。该产品是相对简单的 CLI,但我们有一个单独的构建团队,他们从 CVS 中检查代码并在单独的构建环境中进行构建。我能够在一个平台(AMD 机器)上成功构建(使用 Visual C++ 2005)。但是,一旦我签入代码,就会发现构建失败。

构建失败的原因是因为属性表中错误地指定了包含库路径。具体来说,属性页中链接器下的输出文件夹指定错误。因此,这些库被构建在与其他项目期望的文件夹不同的文件夹中。

但是,我每次都会与源一起签入 .sln 文件(以及后来的 .vcproj 文件)。此外,如果我在构建未成功的文件夹中打开 .sln 文件,则与我可以成功构建(预签入)的文件夹没有区别。事实上,使用windiff我看不出两个构建文件夹之间有任何区别(除了一些.ncb和cvs日志文件)。

那么知道发生了什么吗? VC++ 2005 从哪里获取包含目录(如果不是从 .sln 获取输出文件夹路径)? CVS 是否会以某种方式干扰该过程?还有什么我可以尝试的。

提前致谢。

I am building a cross platform product and one of the requirements is across windows(win32,AMD64 and IA61). The product as is relatively simple CLI but we have a separate build team who checks out the code from CVS and build in separate build environments. I am able to build succesfully(using Visual C++ 2005) in one platform(AMD machine). But once I check in the code, check out the build fails.

The cause of the build failure is because the include library paths are wrongly specified in the property sheets. Specifically the output file folder under the Linker in property pages are specified wrongly. So these libraries get built in a different folder from where the other projects are expecting them.

However along with the source I check in the .sln files (and later .vcproj files) also everytime. Morover if I open the .sln file in the folder where the build is not succeeding, there is no difference between the one where I could succesfully build(pre check in). In fact using windiff I could not see any difference between the two build folders (except some .ncb and cvs log files).

So any idea what is going on? Where does VC++ 2005 take the include directories take the output folder path from if not from .sln? Is CVS somehow interfering with the process? Anything else I could try out.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无声静候 2024-08-22 11:37:45

刚更新问题就解决了。根本原因是 .vcproj 文件没有在 CVS 中检查!这是存储各个项目设置的位置(我的印象是这是在 .sln 文件中完成的)。

Just to update the problem was resolved. The root cause is the .vcproj files were not getting checked in CVS!! This is where the individual project settings were stored(I was under the impression that this is done in .sln files).

秋日私语 2024-08-22 11:37:45

我认为问题可能是在您更改了一个构建配置(例如 x86-Release)中的设置但忘记更改另一配置(例如 ia64-Debug)中的设置之后,当配置更改时,您会遇到此问题。

我要检查你的地方的另一件事是项目依赖性。如果这些设置正确,VS 将在项目输出的准确位置查找项目输出,即使您更改了输出文件夹也是如此。

I think the problem can be that after you have changed the settings in one build configuration (for example x86-Release) but forgotten to change them for another configuration (for example ia64-Debug), and when configuration changes, you have this problem.

Another thing that I would check on your place is project dependencies. If those are set in the right way VS will look for project output exactly where it is outputted, even when you change the output folder.

逆光下的微笑 2024-08-22 11:37:45

您是否有以 ASCII 形式签入的二进制文件?

往返 CVS 的往返可能会损坏被错误标记为 ASCII 的二进制文件,因为 CVS 对 ASCII 文件执行字符处理(例如,为您的操作系统提供正确的行尾代码)。即使在全 Windows 环境中也可能发生损坏。

有关详细信息,请参阅 CVS 常见问题解答中的二进制部分。

Do you have any binary files checked in as ASCII?

The round trip to and from CVS can corrupt binary files that are incorrectly marked as ASCII because CVS performs character processing on ASCII files (e.g. to give you the correct end of line codes for your OS). Corruption can occur even in an all Windows environment.

See the Binary section in the CVS FAQ for more information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文