今天是个好日子,
我正在尝试执行以下操作:
1)创建便携版微软Visual Studio(vs2010 sp1)+平台SDK(winsdk 7.0a)。
2) 将这些文件放到机器上,在项目上运行 cmake 并构建项目
我假设机器已将 .net 框架 4.0、VS 2010 win32/x64 可再发行组件安装到默认位置。
VS 2010 文件:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
我把它们放到d:\distr\msvc100sp1
目录下。
WinSDK 文件:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
我把它们放到d:\distr\WinSDK\7.0a
目录下
我在做任何事情之前运行这个脚本 - 如果调用了 vcvars(在本例中为 amd64),它会重新创建环境:
@set NV_MSVC100INSTALLDIR=d:\distr\msvc100sp1
@set NV_WINSDK_70A=d:\distr\WinSDK\7.0a
@set CommandPromptType=Native
@set INCLUDE=%NV_MSVC100INSTALLDIR%\VC\INCLUDE;%NV_MSVC100INSTALLDIR%\VC\ATLMFC\INCLUDE;%NV_WINSDK_70A%\include;
@set LIB=%NV_MSVC100INSTALLDIR%\VC\LIB\amd64;%NV_MSVC100INSTALLDIR%\VC\ATLMFC\LIB\amd64;%NV_WINSDK_70A%\lib\x64;
@set LIBPATH=%NV_MSVC100INSTALLDIR%\VC\LIB\amd64;%NV_MSVC100INSTALLDIR%\VC\ATLMFC\LIB\amd64;
@set PATH=%NV_MSVC100INSTALLDIR%\VC\bin\amd64;%NV_MSVC100INSTALLDIR%\VC\VCPackages;%NV_MSVC100INSTALLDIR%\Common7\IDE;%NV_MSVC100INSTALLDIR%\Common7\Tools;%NV_WINSDK_70A%\bin\NETFX 4.0 Tools\x64;%NV_WINSDK_70A%\bin\x64;%NV_WINSDK_70A%\bin;%PATH%
@set Platform=x64
@set VCINSTALLDIR=%NV_MSVC100INSTALLDIR%\VC\
@set VSINSTALLDIR=%NV_MSVC100INSTALLDIR%\
@set WindowsSdkDir=%NV_WINSDK_70A%\
@set PROCESSOR_ARCHITECTURE=AMD64
@set VS100COMNTOOLS=%NV_MSVC100INSTALLDIR%\Common7\Tools
::framework
@set Framework35Version=v3.5
@set FrameworkDir=C:\Windows\Microsoft.NET\Framework64
@set FrameworkDIR64=C:\Windows\Microsoft.NET\Framework64
@set FrameworkVersion=v4.0.30319
@set FrameworkVersion64=v4.0.30319
@set NV_FRAMEWORK_INSTALL_DIR=%FrameworkDIR64%\%FrameworkVersion64%
@set LIBPATH=%NV_FRAMEWORK_INSTALL_DIR%;%NV_FRAMEWORK_INSTALL_DIR%\..\v3.5;%LIBPATH%
@set PATH=%NV_FRAMEWORK_INSTALL_DIR%;%NV_FRAMEWORK_INSTALL_DIR%\..\v3.5;%PATH%
但是运行 devenv(它在上面脚本之后的路径上)我收到了这个错误:
Cannot find one or more components. Please reinstall the application.
我认为 cmake 可以弄清楚如何处理编译器,但它抱怨编译器版本检查:
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:9 (project)
The C compiler identification is unknown
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:9 (project)
The CXX compiler identification is unknown
Configuring incomplete, errors occurred!
See also "d:/vs2010_test/build/CMakeFiles/CMakeOutput.log".
See also "d:/vs2010_test/build/CMakeFiles/CMakeError.log".
输出文件中存在关于缺少组件的相同错误。
想要的东西甚至可能吗?可能缺少哪些组件?
我想要的是执行我想要的,然后自动清理机器,即使它需要更改注册表项。