CMake工程中第三方库的CMakeLists文件写法
1 PCL
PCL官网: Link
find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
target_link_libraries(xxx ${PCL_LIBRARIES})
2 OpenMP
CMake官网: Link
stack overflow: Link
find_package(OpenMP REQUIRED)
target_link_libraries(xxx OpenMP::OpenMP_CXX)
3 Eigen3
Eigen官网: Link
find_package (Eigen3 REQUIRED NO_MODULE)
include_directories(${EIGEN3_INCLUDE_DIR})
target_link_libraries (xxx Eigen3::Eigen)
4 glog
GitHub: Link
find_package (glog REQUIRED)
target_link_libraries (xxx glog::glog)
# target_link_libraries (xxx glog)
5 GTSAM
find_package(GTSAM REQUIRED)
include_directories(${GTSAM_INCLUDE_DIR})
target_link_libraries(xxx gtsam)
6 yaml-cpp
GitHub PR: Link
find_package(yaml-cpp REQUIRED)
target_link_libraries(xxx yaml-cpp)
7 Protobuf
CMake官网: Link
find_package(Protobuf REQUIRED)
include_directories(${Protobuf_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
# 生成cpp文件
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS foo.proto)
# 生成py文件
protobuf_generate_python(PROTO_PY foo.proto)
add_executable(xxx ${PROTO_SRCS} ${PROTO_HDRS})
target_link_libraries(xxx ${Protobuf_LIBRARIES})