C_and_CPP 板


LINE

boost 這個 lib 應該很多人用吧,但是版上都沒個完整的編譯安裝心得 所以我把自己在 windows 上安裝 n 次的心得 po 上來給大家參考一下 1.首先從官網下載 boost 的原始碼和 bjam 的 binary 把 boost 解開到某資料夾,如 d:\boost_1_36 再把 bjam 的執行檔也解到同一個資料夾下 2.進到 d:\boost_1_36 的資料夾下,用記事本打開Jamroot檔 (Jamroot 好像是用 Python 寫的?? 前面一半是 bjam 的說明) 在裡面找到一段這樣子的片段: local default-build,complete = debug release <threading>single <threading>multi <link>shared <link>static <runtime-link>shared <runtime-link>static 這一段就是 bjam --build-type=xxx的內容,依你需要的新增一個 像我平常不想用到 debug(多了debug多了1~2g的容量) 而且我想要 static-link,不想用 dll,所以我改成如下: local default-build,mybuild = release <threading>multi <link>static (這邊注意,有版胞發現 , 和 mybuild 之間不能有空白) (否則會導致失效,而編出 debug shard library) (這部分感謝 zxvc 和 ycjcsie 發現的問題) 這一段是自由發揮的,你想要編啥東西出來就改一改 不然就是直接用他 complete 的設定 這裡我沒發現到,有另一個地方也要改,感謝 zxvc 大大的提醒 ========================================================== 在同一個檔案中,在剛剛那一段的上面,有這麼一段: if ! ( $(build-type) in minimal complete ) { build-type = minimal ; } 在 complete 後面,再加上自己設定的 build-type,變成 if ! ( $(build-type) in minimal complete mybuild ) 這樣 bjam 才會使用這個 build-type,( mybuild 後需要有空白) 實在是萬分感謝 zxvc 大大。 ========================================================== 3.接下來,用命令提示字元,來到 d:\boost_1_36 下面 可以先執行 bjam --show-libraries 看有哪些 lib 是需要 compile 的 (如果你不用那些 lib,那你可以直接離開這篇文章了 =.=) 4.再來,決定你要安裝的目錄,和使用的 compiler 像我是要安裝到 d:\boost,我的 compiler 是 mingw (如果你不想用安裝,也是可以的,就是少了 copy include 目錄) 5.再來就交給 bjam 了,例如:我只要 regex 和 system 這兩個 lib 要安裝的這樣子下: bjam --prefix=d:\boost --build-type=mybuild --toolset=gcc --with-regex --with-system install 不要安裝的就這樣子下: bjam --build-type=mybuild --toolset=gcc --with-regex --with-system stage 然後等他 compile 完,安裝的人就到 d:\boost 去找檔案 用 stage 的人,就在 d:\boost_1_36\stage 是你要的 lib 6.最後,就是看你要不要複製 include 和 lib 到 mingw 的目錄下了 這部分對 lib 很熟的大大,應該都知道要怎麼搞了 7.附註:因為我不喜歡 boost 編出來是 .lib 和 .dll,而且很多個 這樣我要 link 的時候要打很長一串,加上我是個懶人 所以我就發現 .o 都在 d:\boost_1_36\bin.v2 裡面 還很貼心的把各種版本都分別放在不同的資料夾下面 於是我就到裡面去,然後我要的是 release 的 static-link 所以我進到最深層的目錄下,把我要的所有 lib 的 obj檔都複製出來 他的目錄是長這樣: ..\bin.v2\libs\<lib名>\build\<toolset>\<debug or release>\ <link-static or not>\<single or multi thread>\*.o 我把 copy 出來的 .o 都放在一個資料夾下,然後到那個資料夾 下這行: ar -q libboost.a *.o 我要的 .a 就產生了,接下來就是把它丟到 mingw\lib 下 然後再把 d:\boost_1_36 的 boost 丟到 mingw\include 這樣我以後只要 -lboost 就ok了,再也不用打那長一串了 (不過只適用我這樣子的懶人) 8.細節我沒有說的很清楚,最好是看一下 bjam --help 的說明 感謝各位耐心看完,有錯請不吝指正,謝謝。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.3.13
1F:推 avhacker:環境設定新增一個 lib path,link 時就會自動找到了 09/11 12:14
2F:→ avhacker:跟本不需要手動輸入 lib 檔名 09/11 12:14
3F:推 kekeo:樓上,不行喔,我試過。推原po。 09/11 12:45
4F:→ ycjcsie:我之前沒編譯也可以用耶 09/11 13:10
5F:推 legnaleurc:部分lib需要編,部分不用 09/11 13:13
6F:→ ewn:我的意思是說-lboos_xxx_mtxx.lib可以變成-lboost 09/11 13:32
7F:推 avhacker:喔,忘了說,我用的是 VC, 不需要指定 lib 檔 09/11 17:08
8F:推 ctrlbreak:推一個. 我之前都用懶人包 XD 09/11 23:20
※ 編輯: ewn 來自: 125.225.20.93 (09/13 19:31) ※ 編輯: ewn 來自: 125.225.16.70 (09/15 12:29)
9F:推 zlw:剛發現boost_1_39_0.7z解壓縮後,根目錄有個bootstrap.bat 06/23 12:48
10F:→ zlw:直接執行這個檔,就會把bjam.exe編譯好,並且移動到根目錄,並 06/23 12:49
11F:→ zlw:提供一些初步建議。如果非Windows應該是跑bootstrap.sh。這樣 06/23 12:50
12F:→ zlw:做會比原本跑到..\tools\jam\src\裡執行build.bat來編譯bjam 06/23 12:51
13F:→ zlw:速度快,而且build.bat也不會幫你把bjam.exe移動到根目錄。 06/23 12:51
14F:推 zlw:目前if ! ( $(build-type) in minimal complete )似乎已經改成 06/23 14:18
15F:→ zlw:可以設定成minimal complete兩者之一,不然就不要設定,若設定 06/23 14:19
16F:→ zlw:了不在裡面的build-type,則會結束bjam不進行build工作。 06/23 14:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP