2011-10-27 33 views
1

我想要co-brandQutecom併爲其製作一個自定義的Windows安裝程序。如何在VS 2008中包含Boost庫(命令行)

我的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! 

如何我可以包括使用命令提示符& C進行升壓庫?

附件:FindBoost.cmake CMakeLists.txt

回答

1

我不知道你正在嘗試與環境變量做。除非你設置CMakeLists.txt來閱讀環境變量並設置它們的cmake變量,否則CMake不會設置環境變量的變量。這是可行的,但我不明白這一點。

我想你想設置的CMake命令行變量與-Dvariable=value

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

+0

感謝您的幫助。嘗試了你的命令行參數,但徒勞無功。我在第一篇文章中附加了Boost文件夾中的CMakeLists.txt文件。 –

+0

@MithunJohnJacob - 從你的'FindBoost.cmake'和我的(來自CMake 2.8.5)的版權線來看,你的版本與官方的CMake版本在2006年到2009年之間有所不同。我試圖使用CMake附帶的版本。它應該位於'Program Files/CMake'內的某個地方,可能位於一個名爲'Modules'的文件夾中。 **編輯:**另外,如果你不使用最新版本的CMake,我會升級。從我的FindBoost.cmake中的註釋中,boost的新版本經常打破該文件。 – Mark

+0

感謝您的幫助。讓我試試你提到的步驟。 –

相關問題