使用CMake,我得到了GPU编码器静态库(.a)制作的ploberm。
26意见(过去30天)
显示older comments
我Wannna编译包括GPU编码器在Jetson Xavier中的静态库(.a)函数,并在ROS上执行代码。
I already successed making static library using gpu coder.
I think that in CMakeLists, setting library path is well.
but I got a ploblem when complile .cpp file through cmake in Xavier.
I attach error code and CMakeLists file.
帮我!!!!!
/home/nvidia/catkin_ws/src/realtime_inpainting/src/wrapper/wrapper.a(wlapper.o):在功能`__sti ____ cudaregisterall()':
tmpxft_00002175_00000000-5_wrapper.cudafe1.cpp :(。text.startup + 0x20):未定义引用到`__cudaregisterlinkedbinary_42_tmpxft_00002175_00000000_6_wrapper_cpp1_ii_96e8f507'
/home/nvidia/catkin_ws/src/realtime_inpainting/src/wrapper/wrapper.a(introsort.o):在功能`__sti ____ cudaregisterall()':
TMPXFT_0000244E_00000000-5_INTROSORT.CUDAFE1.cpp :(。text.startup + 0x20):未定义引用到`__cudaregisterlinkedbinary_44_tmpxft_0000244E_00000000_6_INTOROSORT_CPP1_III_5DA2A824'
/home/nvidia/catkin_ws/src/realtime_inpainting/src/wrapper/wrapper.a(insertionsort.o): In function `__sti____cudaRegisterAll()':
tmpxft_000024cb_00000000-5_insertionsort.cudafe1.cpp:(.text.startup+0x20): undefined reference to `__cudaRegisterLinkedBinary_48_tmpxft_000024cb_00000000_6_insertionsort_cpp1_ii_54501cbc'
/home/nvidia/catkin_ws/src/realtime_inpainting/src/wrapper/wrapper.a (heapsort.o):在功能`__sti ____ cudaregisterall()':
tmpxft_00002530_00000000-5_heapsort.cudafe1.cpp :(。text.startup + 0x20):未定义引用到`__cudaregisterlinkedbinary_43_tmpxft_00002530_00000000_6_heapsort_cpp1_ii_6b1ad24e'
/home/nvidia/catkin_ws/src/realtime_inpainting/src/wrapper/wrapper.a(wrapper_emxutil.o): In function `__sti____cudaRegisterAll()':
tmpxft_0000259e_00000000-5_wrapper_emxutil.cudafe1.cpp:(.text.startup+0x20): undefined reference to `__cudaRegisterLinkedBinary_50_tmpxft_0000259e_00000000_6_wrapper_emxutil_cpp1_ii_74fbff25'
/home/nvidia/catkin_ws/src/realtime_inpainting/src/wrapper/wrapper.a(mwlaunchparametersutities.o):在功能`__sti ____ cudaregisterall()':
tmpxft_000026fb_00000000-5_MWLaunchParametersUtilities.cudafe1.cpp:(.text.startup+0x20): undefined reference to `__cudaRegisterLinkedBinary_62_tmpxft_000026fb_00000000_6_MWLaunchParametersUtilities_cpp1_ii_3d5deff9'
/home/nvidia/catkin_ws/src/realtime_inpainting/src/wrapper/wrapper.a(wlapper_data.o):在功能`__sti ____ cudaregisterall()':
TMPXFT_000020C9_00000000-5_WRAPPER_DATA.CUDAFE1.cpp :( text.startup + 0x20):未定义引用到`__cudaregisterlinkedbinary_47_tmpxft_000020c9_00000000_6_wrapper_data_cpp1_ii_7c19101b'
/home/nvidia/catkin_ws/src/realtime_inpainting/src/wrapper/wrapper.a(wrapper_initialize.o):在功能`__sti ____ cudaregisterall()':
tmpxft_0000210a_00000000-5_wrapper_initialize.cudafe1.cpp :(。text.startup + 0x20):未定义引用到`__cudaregisterlinkedbinary_53_tmpxft_0000210a_00000000_6_wrapper_initialize_cpp1_ii_9c24d7b2'
[84%]构建目标立体贴图Proc_exe
collect2:错误:ld返回1个退出状态
Realtime_inpainting / cmakefiles / inpainting_cuda.dir / build.make:137:目标的配方'/ home / nvidia / catkin_ws / devel / lib / nealtime_inpainting / iNpainting_cuda'失败
make [2]:*** [/ home / nvidia / catkin_ws / devel / lib / nealtime_inpainting / inpainting_cuda]错误1
Cmakefiles / makefile2:7382:目标的配方'realtime_inpainting / cmakefiles / inpainting_cuda.dir /所有失败
make[1]: *** [realtime_inpainting/CMakeFiles/inpainting_cuda.dir/all] Error 2
[1]: * * *等未完成的工作…
[86%]构建目标tf2_ros_static_transform_publisher
[87%]建立目标Kinect2_Bridge
[87%]构建目标Image_Rotate
[ 93%] Built target depth_image_proc
[94%]构建目标Kinect2_Bridge_Nodelet
Makefile:140: recipe for target 'all' failed
制作:*** [全部]错误2
调用“make -j8 -l8”失败
0 Comments
接受答案
chLuo
2020年4月23日
Hi DaHoon,
由GPU编码器创建的静态库包含可重新划分的CUDA设备代码,只能通过NVCC链接。G ++无法链接CUDA设备代码。要解决此问题,您可以使用NVCC而不是G ++链接。或者使用GPU编码器创建动态库(.so),其中设备代码已被NVCC链接,您可以使用G ++链接。
ch
7评论
vlasov aleksandr.
2021年4月18日
Excuse me, I don't understand how to link to libconsole_bridge.so. I can't find anything useful on the Internet, could you tell me which command can do this?