这是我在CMakeLists.txt中的内容:
link_directories( "/usr/local/lib" )
include(CheckLibraryExists)
CHECK_LIBRARY_EXISTS( "libmali-midgard-t76x-r9p0-r0p0.so" "gbm_create_device" "" MALI )
结果:
Looking for gbm_create_device in libmali-midgard-t76x-r9p0-r0p0.so - not found
该库中存在符号:
$ nm -D /usr/local/lib/libmali-midgard-t76x-r9p0-r0p0.so | egrep gbm_create_device
001b245c T gbm_create_device
为什么cmake找不到?
答案 0 :(得分:0)
这是依赖。
CHECK_LIBRARY_EXISTS
比nm -D
复杂得多。 CMake实际上创建了一个引用该库的C项目,并尝试链接它。
我错过了该库使用的一些依赖项(libdrm-dev,libxcb-dri2-0,libx11-xcb-dev),因此链接器失败。
通过查看CMakeFiles文件夹中的内容得出结论,它包含更详细的日志。