我正在尝试建立一个cmake项目,而且我获得的回购有行
find_library(gmp gmp)
if(NOT gmp)
message(FATAL_ERROR "gmp not found")
endif()
导致CMake配置失败。
我被告知这个CMake适用于Redhat Enterprise Linux 7.3。
我也被告知这个repo应该在任何安装了正确库的Linux环境中构建,并且已经专门引用了Ubuntu环境。
我在Debian 9.4.0中构建,我已经安装了gmp,libgmp.so
位于/usr/lib/x86_64-linux-gnu/openssl-1.0.2/engines/libgmp.so
我libgmp.so.10
也有/usr/lib/x86_64-linux-gnu/libgmp.so.10
。
所以,回顾一下,我已经交了一个我已被告知构建的回购,但它没有构建,它在这个特定步骤失败了,我不能让谷歌给我任何有关如何修复的相关结果问题/我做错了什么。
答案 0 :(得分:1)
已安装libgmp,但未安装开发库。
Cmake find_libraries查找软件开发所需的文件,并且在安装libgmp软件包时,没有找到libgmp-dev软件包。
安装libgmp-dev。
答案 1 :(得分:0)
CMake 不搜索“so-version”文件:
如果为“gmp”库名调用find_library
,则CMake会搜索libgmp.so
个文件,但不会搜索libgmp.so.10
个文件。
通常,没有so-version的库文件只是最新的so-version文件的软链接。如果您的Linux发行版没有创建此类链接,您可以手动创建它:
ln -s libgmp.so libgmp.so.10
如果您希望CMake找到/usr/lib/x86_64-linux-gnu/openssl-1.0.2/engines/libgmp.so
文件,该文件不在CMake正常搜索的目录下,您需要提示 CMake。例如。使用PATHS
选项:
find_library(gmp gmp PATHS "/usr/lib/x86_64-linux-gnu/openssl-1.0.2/engines")