作者philip (--以上為智障名單)
看板MAC
標題[軟體] 請問xcode和boost
時間Thu May 19 01:43:05 2011
小弟xcode剛開始使用中,就遇到了一個問題
請有經驗的人幫忙解答,謝謝。
是這樣的
我自己裝了一套boost 1.46.1 (with MacOS 10.6)
安裝方式是
bjam architecture=x86 address-model=64 ..(略)
然後我把include檔放在/usr/local/include(自己建立的)
lib放在/usr/local/lib
在xcode裡頭做了以下幾個設定
Architectures->Architectures:64 bit intel
Search Paths->Header Search Paths:/usr/local/include
Search Paths->Library Search Paths:/usr/local/lib
這樣的方式在header file only的程式是可以work的
表示header路徑正確
但是在需要library的狀況卻一直出錯
(但是我確定library file存在, .a和.dylib都有)
會跳出"Undefined Symbols..."之類的訊息
表示沒有link到library
於是我又在Linking->Other Linker Flags裡
設定 -lboost_filesystem
這時候就跳出了"Library not found for -lboost_filesystem"
改設定成 -L/usr/local/lib -lboost_filesystem還是有一樣的問題
同樣的程式使用g++和Makefile直接編譯是正常的
Visual Stduio更方便連library名稱都不用指定就可以跑
但就是XCode我一直參不透到底哪裡設定錯誤-_-
網路上一些文件也只寫到要設定search path而已
32和64 bit我也都試過一樣都不行
可以請有經驗的人可以分享一下嘛 搞了一個晚上我快瘋掉了
BTW
我現在是用把用到的library拖到專案裡的方式來跑
可以跑但是感覺很dirty XD
--
我達達的引擎聲是個美麗的錯誤
我不是歸人
是個台客
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.110.47
→ uranusjr:用絕對路徑呢? 05/19 03:24
→ uranusjr:我發現有個解決方案...MacPorts 有 boost 可以裝XD 05/19 03:28
昨天有試過了
MacPorts預設是裝在/opt/local/lib
還是一樣的問題..冏....
※ 編輯: philip 來自: 220.133.110.47 (05/19 07:57)
推 dryman:要設定DYLD_LIBRARY_PATH吧? 05/19 08:33
推 dryman:另外可以用homebrew來安裝boost 05/19 08:41
→ uranusjr:DYLD_LIBRARY_PATH 是執行的時候才要設不是嗎, 他現在的 05/19 09:19
→ uranusjr:問題是連 build 都沒辦法... 05/19 09:19
→ philip:(DY)LD_LIBRARY_PATH好像都是不建議設定的變數 05/20 01:02
→ philip:我是有設定run time path給它就是了 05/20 01:03