1

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

4

1 回答 1

3

可以在不依赖系统库的情况下构建 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)
于 2011-08-25T15:27:43.737 回答