我正在尝试为具有以下结构的项目创建 CMake 设置:
workshop
| CMakeLists.txt
| utilities
| | utilities.h
| | utilities.cpp
| | CMakeLists.txt
| week_1
| | week_1.h
| | week_1.cpp
| | main.cpp
| | CMakeLists.txt
| week_2
| | main.h
| | week_2.cpp
| | main.cpp
| | CMakeLists.txt
一切都取决于 OpenCV,而 week_X 中的程序也取决于实用程序。
除了与公用事业的联系之外,我能够做所有事情。
我的审判:
文件研讨会\CMakeLists.txt
cmake_minimum_required(VERSION 2.8.12)
PROJECT(workshop)
SET(OpenCV_DIR OPENCV_DIR)
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS})
add_subdirectory(${CMAKE_SOURCE_DIR}/utilities)
add_subdirectory(${CMAKE_SOURCE_DIR}/week_1)
add_subdirectory(${CMAKE_SOURCE_DIR}/week_2)
文件 week_1\CMakeLists.txt (week_2\CMakeLists.txt 是相同的,只是 1 x 2 改变)
cmake_minimum_required(VERSION 2.8.12)
include_directories( ${OpenCV_INCLUDE_DIRS})
set(SRCFILES week_1.cpp week_1.h main.cpp)
source_group(week_1 FILES ${SRCFILES})
add_executable(week_1 ${SRCFILES})
target_link_libraries(week_1 ${OpenCV_LIBS})
一切都好,直到公用事业。实用程序\CMakeLists.txt 怎么样?
我想你想utilities
成为一个图书馆。
在实用程序 CMakeLists.txt
# This will create libutilities.a
add_library(utilities
utilities.cpp
)
target_include_directories( utilities PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
# Third party libs
${OpenCV_INCLUDE_DIRS}
)
target_link_libraries(utilities
${OpenCV_LIBRARIES}
)
在 week_X 中,您将像这样将其用作库:
include_directories(
${OpenCV_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/utilities # Include utilities header
)
set(SRCFILES week_1.cpp week_1.h main.cpp)
source_group(week_1 FILES ${SRCFILES})
add_executable(week_1 ${SRCFILES})
target_link_libraries(
${OpenCV_LIBS}
utilities # Link to libutilites.a
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句