請問xcode和boost - MAC

Table of Contents


小弟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

--

我達達的引擎聲是個美麗的錯誤
我不是歸人
是個台客

--

All Comments

Oliver avatarOliver2011-05-21
用絕對路徑呢?
Quintina avatarQuintina2011-05-23
我發現有個解決方案...MacPorts 有 boost 可以裝XD
Sandy avatarSandy2011-05-25
要設定DYLD_LIBRARY_PATH吧?
Hazel avatarHazel2011-05-25
另外可以用homebrew來安裝boost
Quanna avatarQuanna2011-05-28
DYLD_LIBRARY_PATH 是執行的時候才要設不是嗎, 他現在的
問題是連 build 都沒辦法...
Jessica avatarJessica2011-06-01
(DY)LD_LIBRARY_PATH好像都是不建議設定的變數
Harry avatarHarry2011-06-04
我是有設定run time path給它就是了