如何运行C++;在其他计算机(linux)上使用OpenCV的库? 在Ubuntu 11.04中,我用C++、OpenCV 2.2和G++编写了一个小项目。我需要创建一个库(.so更好),但我希望它在另一台计算机上运行,而不安装OpenCV。 我尝试使用g++的-shared和-fPIC标志构建动态库,并将OpenCV.so libs复制到工作目录。实际上,我只需要core和feature2d,但实际上它需要很多其他LIB,包括highgui,它也有很多依赖项。 我尝试了静态链接,使用-Wl,-Bstatic标志,但也没有成功。 有人也有同样的问题吗?我将非常感谢任何帮助。

如何运行C++;在其他计算机(linux)上使用OpenCV的库? 在Ubuntu 11.04中,我用C++、OpenCV 2.2和G++编写了一个小项目。我需要创建一个库(.so更好),但我希望它在另一台计算机上运行,而不安装OpenCV。 我尝试使用g++的-shared和-fPIC标志构建动态库,并将OpenCV.so libs复制到工作目录。实际上,我只需要core和feature2d,但实际上它需要很多其他LIB,包括highgui,它也有很多依赖项。 我尝试了静态链接,使用-Wl,-Bstatic标志,但也没有成功。 有人也有同样的问题吗?我将非常感谢任何帮助。,c++,opencv,static-linking,ubuntu-11.04,C++,Opencv,Static Linking,Ubuntu 11.04,构建OpenCV时不需要依赖系统库。要在Linux上打开OpenCV 2.2的所有依赖项,可以使用以下参数运行cmake: cmake -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_EIGEN2=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_OPENEXR=OFF -DWITH_PVAPI=OFF -DWITH_QT=OFF -DWITH_TBB=OFF -DWITH_UNICAP

构建OpenCV时不需要依赖系统库。要在Linux上打开OpenCV 2.2的所有依赖项,可以使用以下参数运行cmake:

cmake -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_EIGEN2=OFF -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_OPENEXR=OFF -DWITH_PVAPI=OFF -DWITH_QT=OFF -DWITH_TBB=OFF -DWITH_UNICAP=OFF -DWITH_V4L=OFF -DWITH_XINE=OFF -DUSE_IPP=OFF -DOPENCV_BUILD_3RDPARTY_LIBS=ON ..
但在这种情况下,您将无法使用highgui模块的许多功能:

  • 视频读写
  • 使用照相机
  • 使用GUI的所有功能(如imshow)

静态链接不会真正有用,因为highgui依赖于多个系统库。如果您不需要摄像头或视频读/写,那么您可以关闭大多数依赖项。如果这对你有用,那么我可以发布一个cmake命令来构建OpenCV而不需要视频支持。是的,我在这个项目中根本不需要highgui,但它被一个OpenCV库使用。非常感谢,我将尝试您的解决方案。似乎
cv::imencode
cv::imdecode
也在
highgui
中。事实上,它们在许多格式下都可以在没有系统库的情况下工作