【发布时间】:2012-07-31 22:30:30
【问题描述】:
我正在尝试使用 msbuild 构建 Visual Studio 2005 解决方案。我使用的批处理文件是:
@ECHO OFF
SETLOCAL
set VSDIR=C:\Program Files (x86)\Microsoft Visual Studio 8
set VCVARSALL=%VSDIR%\VC\vcvarsall.bat
call "%VCVARSALL%" x86 && ^
msbuild path\to\my.sln ^
/v:normal ^
/p:Configuration=Release ^
/p:Platform=Win32 ^
/t:SomeProject:Rebuild
ENDLOCAL
现在,SomeProject 依赖于 SomeOtherProject,这一切都很好,除了我在使用 msbuild 构建时遇到未解决的外部问题:
SomeObjFile.obj : error LNK2001: unresolved external symbol "private: static class SomeClass<class C> C::s_c" (?s_c@C@@0V?$SomeClass@VC@@@@A)
问题是当我在 Visual Studio 2005 中右键单击该项目并选择“重建”时,我没有遇到任何未解决的外部问题。
有人知道我在上面调用 msbuild 时可能做错了什么吗?
谢谢!
【问题讨论】:
-
您为什么要为此尝试使用 MSBuild? VS2005 C++ 项目不使用 MSBuild。只有 2010 年的。我不确定这是否是您的问题,但是调用 devenv/vcbuild 从命令行构建解决方案不是更直接吗?
-
实际上,我很想调用 devenv 并完成它,但它似乎根本没有启动 。我以前使用过 devenv.com,因此我可以将输出输出到控制台,但无法启动它。将尝试使用 vcbuild。
-
好的,现在我想起了原因:当我需要构建特定项目时,依赖项似乎不起作用。
-
解决了 msbuild 版本的问题:缺少项目引用。
-
您应该将其发布为答案(并接受它)。它可能会帮助处于相同情况的其他人。
标签: c++ msbuild visual-studio-2005