2015-12-03 72 views
0

我一直在拼命尋找互聯網尋找解決方案,爲我的C++ boost項目在我的OSX El Captian上工作。下面是簡單的代碼,我試圖編譯:OSX El Capitan C++ boost和Xcode失敗構建項目

#include <iostream> 
#include <boost/python.hpp> 

using namespace boost::python; 

int main(int argc, const char * argv[]) { 
    // insert code here... 
    std::cout << "Hello, World!\n"; 
    return 0; 
} 

保持與此錯誤未能:

Undefined symbols for architecture i386: 
"__Py_NoneStruct", referenced from: 
    boost::python::api::object::object() in main.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我已經安裝了通過自制Boost庫和定義在正確的頁眉和庫路徑我Xcode項目。 我也嘗試過希望項目能夠構建的構建設置的不同組合。沒有運氣!!! 任何幫助表示讚賞。

+0

你編譯了Boost :: Pyhton庫嗎?它不是僅包含頭文件的庫,它必須從源代碼進行編譯。有關更多詳細信息,請參閱http://www.boost.org/doc/libs/1_59_0/libs/python/doc/building.html。 – vsoftco

+0

@vsoftco,那麼我應該包括哪條路?實際提升或提升的路徑-python –

+0

檢查[此鏈接](http://www.shocksolution.com/python-basics-tutorials-and-examples/linking-python-and-c-with-boostpython/),它可能有所幫助。確保在你的編譯行中使用'-lboost-python'。 – vsoftco

回答

0

首先確保你已經使用自制這樣

brew install boost-python 

否則安裝的提升不具有升壓Python庫安裝的推動作用。

然後,你需要在你的編譯腳本

添加

-lboost_python 

,並鏈接到python庫以及。要鏈接到python,您可能需要通過

-lpython 

+0

謝謝!我使用Xcode,你知道這些額外的參數應該到哪裏去嗎?像-lboost-python和-lpython –

+0

@mehdix_我相信你應該在'build settings'下找到'其他鏈接器標誌'。 – Ashkan

+0

@mehdix_如果已經解決了你的問題,請投票。 – Ashkan