2014-10-01 62 views
0

這可能比任何其他更多的g ++問題,但我試圖鏈接到在Anaconda中安裝的庫,但似乎無法找到它們。我有以下編譯命令:無法鏈接到蟒蛇中的python和opencv庫

g++ -O3 -shared -Wl,-no-undefined -o _MakeDataPyExt.so src/pyext.o -L/data1/software/analysis/anaconda/lib -L/data2/software/stable/CUDA/5.5.22/lib64 -lpthread 

本彙編的輸出有很多的抱怨像下面這樣:

pyext.cpp:(.text+0x1ed): undefined reference to `PyString_AsString' 
pyext.cpp:(.text+0x2f1): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)' 

我可以看到/ DATA1 /軟件/分析/蟒蛇/ lib中有蟒蛇和OpenCV的庫

$ ls /data1/software/analysis/anaconda/lib/libpython2.7.so 

回報

/data1/software/analysis/anaconda/lib/libpython2.7.so 

同樣,

$ ls /data1/software/analysis/anaconda/lib/libopencv* 

返回多個庫,其中(我相信)重要的是:

/data1/software/analysis/anaconda/lib/libopencv_core.so 
/data1/software/analysis/anaconda/lib/libopencv_core.so.2.4 
/data1/software/analysis/anaconda/lib/libopencv_core.so.2.4.6 

有什麼明顯的是,我在這裏失蹤?

+0

你有頭文件,比如'Python.h'安裝嗎?您還需要OpenCV開發文件。 – MattDMo 2014-10-01 21:51:13

+0

@MattDMo - 是的,我喜歡。我用它們來創建src/pyext.o – user1245262 2014-10-02 00:46:30

回答

0

我可以看到/ DATA1 /軟件/分析/蟒蛇/ lib中有蟒蛇和OpenCV庫

這是很好的,但它是不夠的:你真正需要列表庫你想鏈接線:

g++ ... -L... -lpython2.7 -lopencv_core -lpthread 

你希望鏈接到神奇地將它們添加到您的鏈接線,只是因爲你添加-L指向這些庫所在的目錄?沒有我知道的鏈接器。