如何在cmake中使用CHECK_LIBRARY_EXISTS?

时间:2017-10-12 20:32:45

标签: linux cmake embedded-linux

这是我在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找不到?

1 个答案:

答案 0 :(得分:0)

这是依赖。

CHECK_LIBRARY_EXISTSnm -D复杂得多。 CMake实际上创建了一个引用该库的C项目,并尝试链接它。

我错过了该库使用的一些依赖项(libdrm-dev,libxcb-dri2-0,libx11-xcb-dev),因此链接器失败。

通过查看CMakeFiles文件夹中的内容得出结论,它包含更详细的日志。