在ros下做libpcan導入是遇到`dlopen',`dlclose'等函數沒有定義問題,查了好多資料,並沒有解決,在google上搜索cmake dlopen後第一條就是解決方案。原文如下。
Suppose you get this error with the main.cpp
file below:
Linking CXX executable testlink
CMakeFiles/testlink.dir/main.cpp.o: In function `main':
main.cpp:(.text+0x1a): undefined reference to `dlopen'
main.cpp:(.text+0x2a): undefined reference to `dlclose'
collect2: ld returned 1 exit status
make[2]: *** [testlink] Error 1
make[1]: *** [CMakeFiles/testlink.dir/all] Error 2
make: *** [all] Error 2
All you need to do is add ${CMAKE_DL_LIBS}
to the target_link_libraries()
call:
target_link_libraries(testlink ${CMAKE_DL_LIBS})
將testlink換成你的源碼名稱即可,添加在包的CMakeList.txt,就是添加add_executabla(源碼名 src/源碼名.cpp)的位置