C++ 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

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            @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),它可以工作。谢谢