我在服务器上使用 cmake 和 makefile 运行一些 c 代码,并且我正在使用一个库,但是当我运行 make 时,我得到了这个错误:/usr/bin/x86_64-linux-gnu-ld: cannot find -lfftw3f
该库已经安装并位于/usr/lib/x86_64-linux-gnu/,有什么建议吗?这是我的 CMAKE 文件
cmake_minimum_required(VERSION 3.5)
project(sfa C)
set(CMAKE_C_STANDARD 11)
set(LIBSFA src/pqueue.c src/sfa_file_loaders.c src/sfa_trie.c src/sfa_node.c src/ts.c src/calc_utils.c src/sfa_query_engine.c src/sfa_file_buffer.c src/sfa_file_buffer_manager.c src/dft.c)
add_library(libsfa STATIC "${LIBSFA}")
add_executable(sfa src/sfa.c )
link_directories(/usr/lib/x86_64-linux-gnu/)
target_link_libraries(sfa libsfa m fftw3f jemalloc readline)
谢谢
最佳答案
通常,提供以前开发的程序使用它的库与您实际需要包含一些要使用的库的文件之间存在差异。
CMake 检查 发展通过查询 #include <blahblah.h>
安装库的版本。属于它的文件。如果它没有找到它们,那么它会提示。
问题很可能是这样的:您已经在系统上安装了库,但没有安装开发版本,以及使用它进行开发所需的所有包含文件。可能您需要安装一些 libfftw3-dev
包或类似名称来安装包含文件,因此可以使用该库进行开发。
关于CMAKE/MAKEFILE :/usr/bin/x86_64-linux-gnu-ld : Cannot find -lfftw3f,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65535688/