使用cmake(包括OpenCV)构建用于分发的MacOS可执行文件 我有一个CMAKLISTS.txt文件,它使用OpenCV、C++、OpenGL编译我的Mac OS应用程序,基于我在SO上找到的信息。当我尝试将可执行文件的文件夹复制到另一个Mac时,由于缺少OpenCV LIB,我得到了一个错误,OpenCV LIB应该位于与可执行文件不同的文件夹中

使用cmake(包括OpenCV)构建用于分发的MacOS可执行文件 我有一个CMAKLISTS.txt文件,它使用OpenCV、C++、OpenGL编译我的Mac OS应用程序,基于我在SO上找到的信息。当我尝试将可执行文件的文件夹复制到另一个Mac时,由于缺少OpenCV LIB,我得到了一个错误,OpenCV LIB应该位于与可执行文件不同的文件夹中,c++,macos,opencv,cmake,C++,Macos,Opencv,Cmake,我是否可以对该文件进行更改,以便在可执行文件或其分发文件夹中包含OpenCV编译代码?我之所以使用CMake,是因为我无法找到一种更简单的方法来构建它 cmake_minimum_required( VERSION 3.1 ) project( go) set (CMAKE_CXX_STANDARD 11) find_package( OpenCV REQUIRED ) find_library( COCOA_FW Cocoa ) find_library( OPENGL_FW OpenGL )

我是否可以对该文件进行更改,以便在可执行文件或其分发文件夹中包含OpenCV编译代码?我之所以使用CMake,是因为我无法找到一种更简单的方法来构建它

cmake_minimum_required( VERSION 3.1 )
project( go)
set (CMAKE_CXX_STANDARD 11)
find_package( OpenCV REQUIRED )
find_library( COCOA_FW Cocoa )
find_library( OPENGL_FW OpenGL )
find_library( IOKIT_FW IOKit )
add_executable( go main.cpp gl_utils.cpp user_interface.cpp geometry_2d.cpp)
target_include_directories( go PRIVATE ${CMAKE_SOURCE_DIR}/include )
target_link_libraries( go ${OpenCV_LIBS} ${COCOA_FW} ${OPENGL_FW} ${IOKIT_FW} ${CMAKE_SOURCE_DIR}/common/libGLEW.a ${CMAKE_SOURCE_DIR}/common/libglfw3.a)

关于另一个相关问题:

现在对于
find_库(OPENGL\u FW OPENGL)
,您需要更加明确:

# This could change based on the OpenGL library you have installed.
find_library( OPENGL_FW libGL.a )

在搜索了更多内容后,我认为作者的评论是一个起点,我可能需要遵循这一点来安装静态OpenCV库。如果我解决了它,就会更新。嘿,@Jon R,你在mac的静态链接方面取得进展了吗?除了针对静态OpenCV的链接外,你还可以将依赖的OpenCV(dylib)库与可执行文件捆绑在一起,并使用
install\u name\u tool
更改可执行文件和依赖于它们的任何其他文件,以使用相对路径引用它们。使用
otool-L
确定要捆绑的内容,并确保遵循依赖项链捆绑子依赖项。
# This could change based on the OpenGL library you have installed.
find_library( OPENGL_FW libGL.a )