如何在VS 2008中包含Boost Library(命令行)

时间:2011-10-27 10:20:21

标签: c++ visual-studio-2008 qt boost cmake

我想要co-brand Qutecom并为其制作自定义的Windows安装程序。

我的 PATH 变量是使用命令提示符在Win 7 Ultimate x64计算机上使用.bat文件设置的。

.bat文件的内容:

@echo on
@SET QTDIR=C:\Qt\4.7.4
@SET INCLUDE=%INCLUDE%;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include
@SET INCLUDE=%INCLUDE%;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\atl
@SET INCLUDE=%INCLUDE%;C:\Program Files (x86)\Microsoft DirectX SDK (August 2007)\Include
@SET LIB=%LIB%;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib
@SET PATH=%PATH%;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin
@SET PATH=%PATH%;C:\Qt\4.7.4\bin;c:\Program Files\Mercurial
@SET BOOST_ROOT=C:\boost\boost_1_47_0
@SET BOOST_INCLUDE_DIR=C:\boost\boost_1_47_0
@SET BOOST_INCLUDE_DIRS=C:\boost\boost_1_47_0
@SET BOOST_LIBRARY_DIRS=C:\boost\boost_1_47_0\stage\lib
@SET BOOSTLIBDIR=C:\boost\boost_1_47_0\stage\lib
@SET LIB=C:\boost\boost_1_47_0\stage\lib
@SET LIBPATH=C:\boost\boost_1_47_0\stage\lib
@SET BOOSTINCLUDEDIR=C:\boost\boost_1_47_0
@SET PATH=%PATH%;C:\Program Files (x86)\NSIS
@"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"

我尝试过以下命令:

cmake .. -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles"
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat" && cmake .. -G "Visual Studio 9 2008"

我从Visual Studio 2008 x64交叉工具命令提示符中收到以下错误消息。

-- found boost includes in C:/boost/boost_1_47_0
-- found boost libs in TMP-NOTFOUND
-- found boost includes in C:/boost/boost_1_47_0
-- found boost libs in TMP-NOTFOUND
CMake Error at owbuild/FindBoost.cmake:569 (message):
  Could not find Boost
Call Stack (most recent call first):
  libs/3rdparty/boost/CMakeLists.txt:10 (find_package)


-- Configuring incomplete, errors occurred!

如何使用命令提示符& amp;来包含提升库? cmake?

附件: FindBoost.cmake CMakeLists.txt

1 个答案:

答案 0 :(得分:1)

我不确定你要对环境变量做些什么。除非您设置CMakeLists.txt来读取env变量并从中设置cmake变量,否则CMake不会从环境变量设置变量。这是可行的,但我没有看到这一点。

我认为您希望使用-Dvariable=value在cmake命令行上设置变量:

cmake .. -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" -DBoost_NO_SYSTEM_PATHS=TRUE -DBOOST_INCLUDEDIR="C:\boost\boost_1_47_0" -DBOOST_LIBRARYDIR="C:\boost\boost_1_47_0\stage\lib" -DBoost_ADDITIONAL_VERSIONS="1.47.0"

如果这不起作用,请检查CMakeLists.txt - 这些变量是否设置为不同的值,覆盖命令行设置?

如果其他所有方法都失败了,请查看FindBoost.cmake。特别是查看文件顶部的注释 - 它们解释了各种变量的作用。

来源:googlemailing listml reply