我有一个项目,其中包含一个子目录中的opencv的预建版本。例如:如何配置cmake以链接到预构建的共享库?
MyProject的
*的CMakeLists.txt
* SRC
* THIRD_PARTY
**的CMakeLists.txt
**的OpenCV
****包括
**** LIB
我想链接到位于third_party目录中的opencv版本。我的问题是,如何通知CMake链接到lib中的预编译dylib文件,并将头文件包含在相关的opencv目录中?
cmake_minimum_required(VERSION 2.8.9)
project (myproject)
include_directories(${CMAKE_SOURCE_DIR}/third_party/opencv/include)
link_directories(${CMAKE_SOURCE_DIR}/third_party/opencv/lib)
file(GLOB SOURCES "*.cpp")
add_executable(myproject ${SOURCES})
target_link_libraries(myproject opencv_calib3d opencv_contrib opencv_core opencv_highgui opencv_features2d opencv_highgui opencv_imgproc)
如果你使用'find_package(OpenCV的)''然后设置(OpenCV_DIR $ {} CMAKE_SOURCE_DIR/THIRD_PARTY/OpenCV的)'之前。或者,您可以使用直接路径:'include_directories($ {CMAKE_SOURCE_DIR}/third_party/opencv/include)'和相应的'link_directories($ {CMAKE_SOURCE_DIR}/third_party/opencv/lib)'调用。这些标准命令有什么问题? – Tsyvarev
@Tsyvarev我已经采纳了您的建议并将其应用(请参阅推荐的问题描述)。不幸的是,我仍然得到一个链接器错误(ld:symbol(s)not found for architecture x86_64) –
Plesase,将链接器的错误消息添加到您的问题中。你有另一个OpenCV库,安装到默认路径?这看起来很奇怪,链接器找到了库文件,但没有找到它的符号。 – Tsyvarev