/usr/bin/ld: /usr/local/lib/libprotobuf.so: undefined reference to symbol 'inflateEnd' /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libz.so: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status t3/CMakeFiles/t3_node.dir/build.make:318: recipe for target '/smartview/devel/lib/t3/t3_node' failed make[2]: *** [/smartview/devel/lib/t3/t3_node] Error 1 CMakeFiles/Makefile2:3555: recipe for target 't3/CMakeFiles/t3_node.dir/all' failed make[1]: *** [t3/CMakeFiles/t3_node.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [100%] Built target smartview_node Makefile:145: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j20 -l20" failed
时间: 2023-08-07 08:07:47 浏览: 585
/usr/bin/ld:cannot find-lThreads的解决办法
5星 · 资源好评率100%
根据错误信息,可以看出是在链接时发生了错误。错误信息提示 `/usr/local/lib/libprotobuf.so` 引用了 `inflateEnd` 符号,但是该符号未在链接时找到。同时,还提示 `/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libz.so` 缺失。
综合来看,可能是在链接时缺失了 zlib 库。可以尝试在 CMakeLists.txt 中添加以下语句:
```
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lz")
```
该语句的作用是将链接时需要的 zlib 库添加到链接选项中。您可以将其添加到 `project` 和 `find_package` 语句之间。
阅读全文