MSBuild、未解决的外部和 Visual Studio 2005
Posted
技术标签:
【中文标题】MSBuild、未解决的外部和 Visual Studio 2005【英文标题】:MSBuild, unresolved externals and Visual Studio 2005 【发布时间】: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 版本的问题:缺少项目引用。 您应该将其发布为答案(并接受它)。它可能会帮助处于相同情况的其他人。 【参考方案1】:解决了 msbuild 版本的问题:缺少项目引用。要解决此问题,请右键单击 VS 中的项目并添加对缺失库的引用。保存所有项目,Bob 就是你的叔叔。
【讨论】:
以上是关于MSBuild、未解决的外部和 Visual Studio 2005的主要内容,如果未能解决你的问题,请参考以下文章
MSBuild:从 Visual Studio 中构建解决方案后运行目标
使用 Msbuild 和 devenv 在项目解决方案下构建特定的 Visual Studio 项目
MSBuild 的 Visual Studio 解决方案项目中所需的更改
Visual Studio 在构建、重建和清理解决方案时使用啥 dotnet core cli 命令(或 msbuild 命令)?