2011-07-31 74 views
8

所以我在這裏結束我的線路;我正在研究保存文件和序列化,只是爲了瞭解C++不具備Python與其精彩的pickle一樣的本地序列化能力。但幸運的是,它具有Boost功能 - 所以開始我的任務,在我的系統上安裝Boost 1.47,以便能夠序列化我的對象。如何使用CodeBlocks安裝Boost庫?

到目前爲止,雖然沒有成功。我第一次以爲我可以使用這個:http://wiki.codeblocks.org/index.php?title=BoostWindowsQuickRef,但我不斷得到不匹配的版本錯誤,並試圖多次找到一個與1.47兼容的Boost Jam(我只發現1.3.19,它似乎是爲1.46構建的),我看到該頁面已過了一年半的時間。

然後,經過大量的搜索,我被指出這裏:http://www.boost.org/doc/libs/1_47_0/doc/html/bbv2/installation.html。但是這也行不通。當運行\ bootstrap.bat,我得到以下錯誤:

Failed to build Boost.Build engine. Please consult bootstrap.log for further diagnostics.

咦 - 嗯,無處有任何形式的.log文件,但有一個名爲引導一個文本文件,它包含以下內容:

Setting environment for using Microsoft Visual Studio 2010 x86 tools. 
### 
### Using 'vc10' toolset. 
### 

c:\Program Files (x86)\CodeBlocks\MinGW\downloaded\boost_1_47_0\tools\build\v2\engine>if exist bootstrap rd /S /Q bootstrap 

c:\Program Files (x86)\CodeBlocks\MinGW\downloaded\boost_1_47_0\tools\build\v2\engine>md bootstrap 

c:\Program Files (x86)\CodeBlocks\MinGW\downloaded\boost_1_47_0\tools\build\v2\engine>cl /nologo /RTC1 /Zi /MTd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib /Febootstrap\jam0 command.c compile.c debug.c execnt.c expand.c filent.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c output.c parse.c pathunix.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c pwd.c class.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c 
command.c 
compile.c 
debug.c 
execnt.c 
execnt.c(29) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory 
expand.c 
filent.c 
glob.c 
hash.c 
hdrmacro.c 
headers.c 
jam.c 
jam.c(581) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory 
jambase.c 
jamgram.c 
lists.c 
make.c 
make1.c 
newstr.c 
option.c 
output.c 
parse.c 
Generating Code... 
Compiling... 
pathunix.c 
pathunix.c(275) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory 
regexp.c 
rules.c 
scan.c 
search.c 
subst.c 
timestamp.c 
variable.c 
modules.c 
strings.c 
filesys.c 
builtins.c 
md5.c 
pwd.c 
class.c 
w32_getreg.c 
w32_getreg.c(18) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory 
native.c 
set.c 
path.c 
regex.c 
Generating Code... 
Compiling... 
property-set.c 
sequence.c 
order.c 
Generating Code... 

現在,我真的只是困惑。所有這些我都在我的頭上 - 我仍然在編程側滾動器,並且現在只有C++能力。我不知道我做錯了什麼。有人可以指向我一個清晰,完整的分步指南嗎?我只想把Boost加到我的系統上!

+0

您使用的是什麼工具集(編譯器)? –

+0

對不起!如果我沒有弄錯,我正在使用MinGW,但說實話,我還沒有學到很多關於編程技術的更多方面,所以我可能會誤解這一點。 – GarrickW

回答

3

從您發佈的錯誤消息中,我假設您正在使用某些版本的Visual Studio。爲了從命令行使用它的編譯器,你需要定義一些環境變量。如果您使用Visual Studio命令提示符,則會自動爲您完成此操作。更好的是,你可能想嘗試並遵循this tutorial

0

我試過從http://forums.codeblocks.org/index.php?topic=15164.0 &它工作很好。

BOOST安裝:

或者下載的zip或升壓的7zip的包。將內容提取到extract_dir。

打開命令提示符(cmd.exe)並導航到extract_dir。 cd extract_dir

如果minGW \ bin文件夾(可在CodeBlocks installatoin文件夾中找到)不在路徑變量中添加它。

路徑minGW_dir \ BIN;%PATH%

在記事本中輸入

bootstrap.exe MinGW的

打開文件EXTRACT_DIR \項目config.jam中構建升壓構建系統和改變字msvc gcc。

早在命令提示符窗口中運行

b2.exe

建立加強與代碼塊

創建全局變量升壓與EXTRACT_DIR爲基礎。 (這是我電腦上的C:\ Libraries \ boost_1_47_0。)其他字段不需要任何東西(除非可能是lib;如果在構建boost時使用了自定義目錄,請將路徑放在此處)。 接下來(假設你正在開始一個項目,而不是添加到現有項目),創建一個新項目(一個控制檯應用程序應該沒問題) 在這個項目中,打開Project-> Build options ...並確保總體名稱在左側列中選擇項目(例如,boost_test)。切換到搜索目錄選項卡,然後單擊添加(對於編譯器選項卡)。在框中輸入$(#boost),然後單擊確定。

0

這裏是一個博客帖子與配置代碼:: Blocks的使用Boost庫成交在Windows環境(頭,只和編譯):

http://www.technical-recipes.com/2014/configuring-codeblocks-to-use-the-boost-libraries/

不要忘記,對於加速需要額外編譯庫,你需要通過Boost的根目錄下運行boostrap.bat和b2.exe命令:

bootstrap.bat mingw b2.exe

這將默認爲把圖書館在舞臺\ lib目錄。一旦生成了所有的mingw類型庫,進入Project> Build Options並通過Search Directories設置附加包含,選擇Linker選項卡並設置庫文件的位置,並在Linker Settings選項卡中添加必要的庫名稱)(例如boost_filesystem-mgw48-mt-d-1_56),應該是這樣。