当使用外部库构建项目时,通常会遵循以下步骤:
- 使用
ExternalProject_Add
添加外部库。 - 配置外部库的参数,如 Git 仓库地址、构建选项等。
- 将外部库的头文件路径和库文件路径添加到当前项目中。
- 在项目中链接外部库。
以下是两个常见外部库的示例:
使用 Google Test 进行单元测试
cmake_minimum_required(VERSION 3.0)
project(MyProject)
include(ExternalProject)
# 添加 Google Test
ExternalProject_Add(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.10.0
PREFIX ${CMAKE_BINARY_DIR}/external/googletest
# 其他参数...
)
# 获取 Google Test 的源代码和构建目录
ExternalProject_Get_Property(googletest SOURCE_DIR BINARY_DIR)
# 将 Google Test 的头文件路径添加到项目中
include_directories(${SOURCE_DIR}/googletest/include)
# 添加测试子目录
add_subdirectory(test)
# 链接 Google Test 库到测试子目录中的测试程序
target_link_libraries(MyTestTarget libgtest libgmock)
使用 OpenCV 处理图像
cmake_minimum_required(VERSION 3.0)
project(MyProject)
include(ExternalProject)
# 添加 OpenCV
ExternalProject_Add(
opencv
GIT_REPOSITORY https://github.com/opencv/opencv.git
GIT_TAG 4.5.4
PREFIX ${CMAKE_BINARY_DIR}/external/opencv
# 其他参数...
)
# 获取 OpenCV 的源代码和构建目录
ExternalProject_Get_Property(opencv SOURCE_DIR BINARY_DIR)
# 将 OpenCV 的头文件路径添加到项目中
include_directories(${SOURCE_DIR}/include)
# 添加主程序子目录
add_subdirectory(src)
# 链接 OpenCV 库到主程序
target_link_libraries(MyMainTarget ${BINARY_DIR}/libopencv_core.so ${BINARY_DIR}/libopencv_highgui.so)
这些示例展示了如何使用 ExternalProject_Add
来添加外部库,并将其集成到项目中。