上面的目录结构,track生成静态库被tracker调用,tracker被pointcloud调用,cmakelists怎么改动
时间: 2024-04-12 16:27:13 浏览: 220
要将 tracker 生成为静态库供 tracker 和 pointcloud 使用,可以按照以下方式修改 CMakeLists.txt:
```cmake
cmake_minimum_required(VERSION 3.5)
project(Pointcloud)
set(CMAKE_CXX_STANDARD 11)
# Pointcloud
add_executable(pointcloud pointcloud.cpp utils.h obstacle_detector.cpp obstacle_detector.h)
target_link_libraries(pointcloud tracker) # 链接 tracker 库
# Tracker
add_library(tracker STATIC
tracker/tracker.cpp
tracker/obstacle_detector.cpp
tracker/utils.h
tracker/track/track.cpp
tracker/track/obstacle_detector.cpp
tracker/track/kalman.cpp
)
target_include_directories(tracker PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/tracker) # 添加 tracker 目录的头文件包含路径
# Munkres
add_executable(munkres tracker/munkres/munkres.cpp tracker/munkres/matrix.cpp tracker/munkres/matrix.h)
target_link_libraries(munkres tracker) # 链接 tracker 库
```
通过上述修改,我们将 tracker 文件夹下的文件编译为了一个名为 `tracker` 的静态库。然后在 pointcloud 和 munkres 的可执行文件中分别链接该静态库。同时,我们还通过 `target_include_directories` 将 tracker 文件夹添加到了头文件包含路径中,以便在 pointcloud 中能够引用 tracker 目录下的头文件。
请注意,以上的修改假设 tracker 文件夹下的文件都属于 tracker 库的一部分,如果还有其他文件需要添加到 tracker 库中,请在 `add_library` 的源文件列表中添加相应的文件路径。
最后,重新运行 cmake 和 make 命令来重新编译项目。这样就可以生成 Pointcloud、Tracker 和 Munkres 三个可执行文件,并且 Pointcloud 中可以调用 tracker.cpp。
阅读全文