我正在尝试创建一个c++文件的.so文件(两个摄像头.cpp)包括主文件()和另一个C++文件(比如ABC。abc.c包括opencv。使用ctypes创建对象时
g++ -fPIC -shared twocams.cpp -o twocams.so
Test = ctypes.cdll.LoadLibrary('/home/administrator/Desktop/project/twocams/twocams.so')
我得到的错误是:- 未定义符号:_ZN2cv12VideoCapturersERNS
如何解决这个问题?我想在python中使用c++代码。任何替代方案都是可以接受的。在
当您创建一个共享对象并希望使用它时,您必须将您的工件与这个共享对象的所有依赖项相关联。E、 g.我创建一个
libtwocams.so
要使用这个共享对象,我必须链接到libopencv_core、libopencv_videoio、libopencv_imgproc、libopencv_imgcodecs、libz等等。我用
^{pr2}$另一种解决方案是将共享对象链接到依赖库。E、 g
创建一个共享库,使加载程序加载所有依赖项。您可以使用
ldd
检查依赖关系。在图书馆的顺序很重要。如果libA对libB有依赖关系,那么必须先链接libA,然后再链接libB。在
如果使用opencv的共享库,则不需要链接所有其他依赖项。在
下面是一个逐步的手册:
安装conan
安装cmake
将存储库bincrafters添加到conan
创建:
在conanfile.txt文件公司名称:
在CMakeLists.txt文件公司名称:
转到
build
并安装依赖项:使用cmake生成项目:
相关问题 更多 >
编程相关推荐