此问题在此处已有答案:
Need to link cmake project to dl library(1个答案)
昨天关门了。
错误:
Linking CXX executable cmakeproject
CMakeFiles/cmakeproject.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/cmakeproject.dir/all] Error 2
make: *** [all] Error 2
我询问如何在CMake项目中修复此问题,因为有多个类似的问题和答案,但它们不使用CMake:
- https://stackoverflow.com/a/956698/13545849
- https://stackoverflow.com/a/20419191/13545849
- https://stackoverflow.com/a/33035858/13545849
- https://stackoverflow.com/a/6183935/13545849
- ...还有很多其他“副本”
如果我使用CMake,如何修复此问题?
1条答案
按热度按时间lb3vh1jj1#
溶液
将
${CMAKE_DL_LIBS}
链接到您的target
如何找到解决方案
如果你谷歌
dlopen
和滚动一点,你可能会发现CMAKE_DL_LIBS
页在CMake文档CMAKE_DL_LIBS
(四个月前)包含
dlopen
和dlclose
的库的名称。包含
dlopen
和dlclose
的库的名称,在大多数UNIX计算机上通常为-ldl
。