C++ cmake找不到libsndfile
Cmake似乎找不到libsndfile。但是,它安装在我的机器上C++ cmake找不到libsndfile,c++,cmake,centos,libsndfile,C++,Cmake,Centos,Libsndfile,Cmake似乎找不到libsndfile。但是,它安装在我的机器上 find_library(sndfile REQUIRED) 并安装: yum list installed | grep libsnd libsndfile.x86_64 1.0.25-11.el7 @base libsndfile-devel.x86_64 1.0.25-11.el7
find_library(sndfile REQUIRED)
并安装:
yum list installed | grep libsnd
libsndfile.x86_64 1.0.25-11.el7 @base
libsndfile-devel.x86_64 1.0.25-11.el7 @base
错误:
CMake Error at CMakeLists.txt:65 (find_library):
Could not find sndfile using the following names:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.19)
project(untitled1)
set(CMAKE_CXX_STANDARD 11)
find_library(sndfile REQUIRED)
add_executable(untitled1 main.cpp)
Main.cpp
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
#包括
int main(){
std::cout无论是否安装在您的计算机上,这都没有多大意义。CMake不会在您的所有计算机上搜索库。您可以做的最好的事情是将已安装库的位置添加到您的路径
环境变量中
以下是CMake文档中关于find_library()
提示
和路径
参数的说明:
提示、路径
除了默认目录外,还指定要搜索的目录
ENV var子选项从系统读取路径
环境变量
CMake还提供了另一种解决方案:设置CMake_前缀_路径
您可以找到有关它的更多详细信息。@drescherjm done:)您添加了CMakeLists.txt,但没有发布错误消息的下一行。它在使用以下名称找不到sndfile后说了什么:您忘记在find\u library
调用中为您的库指定名称。的第一个参数是变量名,而不是library名称。@Tsyvarev我现在明白了错误消息。我希望它正在寻找一个名为libREQUIRED
的库。我还将确保cmake为cmake\u STATIC\u library\u后缀
具有正确的值,后缀。x86\u 64
似乎不寻常,linux发行版通常具有。我对find\u库的扩展调用是错。如果我定义了:find_library(sndfile libsndfile),它可以工作。谢谢