使用静态库构建OpenCV应用程序

问题描述 投票:1回答:1

编辑:

几步后问题解决了。您可以在OpenCV问答页面上查看我的帖子。

http://answers.opencv.org/question/152366/build-application-with-static-libraries/

我正在尝试静态链接我的C ++(CMake)应用程序,以便在另一台没有安装OpenCV的计算机上运行。

至今,

  1. 我通过将BUILD_SHARED_LIBS设置为OFF来从源代码构建OpenCV,因此我可以在lib目录下看到库文件。 (扩展名为.a)
  2. 我为OpenCV的新版本编辑了环境变量,我的IDE确实看到包含目录和文件,所以这一步似乎也没问题。
  3. 在CMake中为target_link_libraries命令添加了“-static”参数: target_link_libraries(HoGPeopleDetector ${OpenCV_LIBS} "-static")

然后重建应用程序,EXE大小从200 KB增加到1.6 MB。所以我猜连接过程是成功的。

当我在IDE中运行它时,该应用程序运行良好。但是,当我尝试从EXE文件运行它时,它仍然需要DLL文件。 (libopencv_core310.dll和更多)

IDE:CLion 2017.1.2 OpenCV:3.1

opencv cmake static-linking opencv3.1
1个回答
0
投票

几步后问题解决了。您可以在OpenCV问答页面上查看我的帖子。

http://answers.opencv.org/question/152366/build-application-with-static-libraries/

总的来说,它是“记得在每次调用cmake之间清除你的CMake cache file”并移动/复制opencv_ffmpegXXX.dll(在我的情况下为310),将它放在与你的EXE相同的目录中。

© www.soinside.com 2019 - 2024. All rights reserved.