c++ - CMake 链接器标志
问题描述
我有一个 C++ 代码,分为 2 个文件 image_desc_try.cpp、common.cpp 和 common.h。此代码涉及 Nvidia CUDA 和 NVidia NVInfer 的使用。
我可以使用以下代码成功编译整个代码。
g++ -std=c++11 image_desc_try.cpp common.cpp -I /usr/local/cuda/include -L /usr/local/cuda/lib64 -lcudart -lnvinfer -lnvparsers
现在,我正在尝试用 CMake 做同样的事情,
include_directories( "/usr/local/cuda/include" )
add_executable( desc_server
common.cpp
image_desc_try.cpp
)
target_link_libraries( desc_server
${catkin_LIBRARIES}
/usr/lib/aarch64-linux-gnu/libnvinfer.so
/usr/lib/aarch64-linux-gnu/libnvparsers.so
/usr/local/cuda-10.0/targets/aarch64-linux/lib/libcudart.so
)
这给了我链接错误:
/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libnvparsers.so: undefined reference to `getPluginRegistry'
/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libnvparsers.so: undefined reference to `getInferLibVersion'
/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libnvparsers.so: undefined reference to `getLogger'
/usr/lib/gcc/aarch64-linux-gnu/7/../../../aarch64-linux-gnu/libnvparsers.so: undefined reference to `nvinfer1::utils::reshapeWeights(nvinfer1::Weights const&, int const*, int const*, void*, int)'
collect2: error: ld returned 1 exit status
tx2_whole_image_desc_server/CMakeFiles/desc_server.dir/build.make:157: recipe for target '/home/dji/catkin_ws/devel/lib/tx2_whole_image_desc_server/desc_server' failed
make[2]: *** [/home/dji/catkin_ws/devel/lib/tx2_whole_image_desc_server/desc_server] Error 1
CMakeFiles/Makefile2:1578: recipe for target 'tx2_whole_image_desc_server/CMakeFiles/desc_server.dir/all' failed
make[1]: *** [tx2_whole_image_desc_server/CMakeFiles/desc_server.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
如何解决这个问题?
解决方案
推荐阅读
- python-3.x - 有没有办法在熊猫中将数字月/日/年转换为字母形式的月/日/年?
- c++ - 如何在 UE4 C++ 中更新小部件?
- python - django服务器启动时如何启动单个后台任务?
- python - Python Mongoengine:如何绕过无法通过验证的文档以避免崩溃
- r - 使用 R 中的函数和循环填充空矩阵
- kotlin - Kotlin 中这段代码的“懒惰”是什么意思?
- r - 估计与 R 中删失数据的一个变量的相关性
- linux - 如何告诉`make`在哪里可以找到zlib.h?
- genymotion - Genymotion 显示扭曲的图形
- apache - 尝试在 Apache 2.4.29 和 Ubuntu 18.04 上设置安全 WebSocket