使用静态库构建 OpenCV 应用程序
Building an OpenCV Application with Static Libraries
编辑:
几步后问题解决了。您可以在 OpenCV 问答页面上查看我的 post。
http://answers.opencv.org/question/152366/build-application-with-static-libraries/
我正在尝试将我的 C++ (CMake) 应用程序静态 link 到另一台未安装 OpenCV 的计算机上 运行。
到目前为止,
我通过将 BUILD_SHARED_LIBS 设置为 OFF 从源代码构建 OpenCV,因此我可以在 lib 目录下看到库文件。 (扩展名为 .a)
我为新构建的 OpenCV 编辑了环境变量,我的 IDE 确实看到包含目录和文件,所以这一步似乎也可以。
在 CMake 的 target_link_libraries 命令中添加了“-static”参数:
target_link_libraries(HoGPeopleDetector ${OpenCV_LIBS} "-static")
然后重建应用程序,EXE 大小从 200 KB 增加到 1.6 MB。所以我猜 linking 过程是成功的。
当我 运行 在我的 IDE 中时,该应用程序运行良好。但是,当我尝试从 EXE 文件 运行 它时,它仍然需要 DLL 文件。 (libopencv_core310.dll 甚至更多)
IDE:CLion 2017.1.2 OpenCV:3.1
几步后问题解决了。您可以在 OpenCV 问答页面上查看我的 post。
http://answers.opencv.org/question/152366/build-application-with-static-libraries/
总的来说,"remember to clear your CMake between each invocation of cmake" move/copy opencv_ffmpegXXX.dll(在我的例子中是 310),把它和你的 EXE 放在同一个目录下。
编辑:
几步后问题解决了。您可以在 OpenCV 问答页面上查看我的 post。
http://answers.opencv.org/question/152366/build-application-with-static-libraries/
我正在尝试将我的 C++ (CMake) 应用程序静态 link 到另一台未安装 OpenCV 的计算机上 运行。
到目前为止,
我通过将 BUILD_SHARED_LIBS 设置为 OFF 从源代码构建 OpenCV,因此我可以在 lib 目录下看到库文件。 (扩展名为 .a)
我为新构建的 OpenCV 编辑了环境变量,我的 IDE 确实看到包含目录和文件,所以这一步似乎也可以。
在 CMake 的 target_link_libraries 命令中添加了“-static”参数:
target_link_libraries(HoGPeopleDetector ${OpenCV_LIBS} "-static")
然后重建应用程序,EXE 大小从 200 KB 增加到 1.6 MB。所以我猜 linking 过程是成功的。
当我 运行 在我的 IDE 中时,该应用程序运行良好。但是,当我尝试从 EXE 文件 运行 它时,它仍然需要 DLL 文件。 (libopencv_core310.dll 甚至更多)
IDE:CLion 2017.1.2 OpenCV:3.1
几步后问题解决了。您可以在 OpenCV 问答页面上查看我的 post。
http://answers.opencv.org/question/152366/build-application-with-static-libraries/
总的来说,"remember to clear your CMake