【发布时间】:2015-06-17 18:56:12
【问题描述】:
我正在尝试在 cygwin 中自动构建一个(当前工作的)Visual Studio 2013,以便我可以自动构建我的项目并运行它。我的项目是使用 VS2012 工具集编译的。
我目前在 cygwin 中运行这个 bash 脚本(基于这篇博文:http://anthonykosky.blogspot.com/2013/10/making-visual-studio-solutions-cmake.html):
###### FIRST -- import the Visual Studio settings
export PATH=$PATH:"/cygdrive/C/Windows/system32"
CMD=/cygdrive/c/Windows/system32/cmd
${CMD} /c "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
# alias for MSBUILD
MSBUILD="/cygdrive/c/Program Files (x86)/MSBuild/12.0/Bin/MSBuild.exe"
# We're going to do a 64 bit release build
BUILD_CONFIG=Release
PLATFORM=x64
MSBUILD_LOG=msbuild.log
SLN_FILE=$1
"${MSBUILD}" ${SLN_FILE} /fl /property:Configuration=${BUILD_CONFIG};Platform=${PLATFORM}
msbuild_rv=$?
if [ ${msbuild_rv} != 0 ]
then
echo "MSBuild ${SLN_FILE} exited with status '${msbuild_rv}'"
exit 1
fi
grep -q '0 Error(s)' ${MSBUILD_LOG}
if [ $? != 0 ]
then
echo "MSBuild ${SLN_FILE} detected errors"
exit 1
fi
当它编译时,我得到重复的错误:
error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1800' in {file}.obj
这似乎是版本 1800(VS2013,我在其中创建解决方案)和 1700(VS2012,我需要编译的工具集)之间的不匹配。
我有点困惑为什么 MSBuild 没有正确执行此操作,因为我的解决方案在 VS2013 中配置正确。我需要在构建脚本中进行哪些更改以确保它能够编译?
谢谢!
【问题讨论】:
标签: visual-studio-2012 visual-studio-2013 msbuild cygwin build-automation