2014-10-01 60 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指向这些库所在的目录?没有我知道的链接器。