cmake踩坑经历

在跑 3d gaussian splatting 的过程中,发现了许多不能直接匹配的问题
Ubuntu22.04
在编译 SIBR viewers 的过程中,一直报错/lib/libdial.so undefined symbol 问题
经过反复排查,找到的解决方案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
find_package(CURL REQUIRED)
set(GLIBX_LIBRARY "/usr/lib/x86_64-linux-gnu/libstdc++.so.6")
target_link_libraries(${PROJECT_NAME}

${Boost_LIBRARIES}
${ASSIMP_LIBRARIES}
${GLEW_LIBRARIES}
${OPENGL_LIBRARIES}
${OpenCV_LIBRARIES}
${CURL_LIBRARYS} # 添加库
${GLIBX_LIBRARY} # 添加GLIBX3.24.0
OpenMP::OpenMP_CXX
sibr_gaussian
sibr_view
sibr_assets
sibr_renderer
sibr_basic
)
include_directories(${GLIBX_LIBRARY}) # 引用添加

上述的错误,终究还是对 cmake 不理解、使用的少导致的,以后的工作中免不了要和 cmake 打交道,所以还是尽量使用 cmake 的一些指令。
网上的解决方案给了我很大的帮助
ldd 查看.so 文件的库依赖
nm -D 查看动态链接的 symbol
grep 用来过滤显示的信息
locate 寻找动态链接库的位置