Macos cmake find_软件包在Mac OS X上不工作

Macos cmake find_软件包在Mac OS X上不工作,macos,cmake,gsl,Macos,Cmake,Gsl,正在尝试创建我的第一个cmake项目。我有一个非常简单的设置,但似乎无法找到_包的工作。我在Mac OS X 10.9.3上,从dmg软件包(cmake版本2.8.12.2)安装了cmake。我创建了一个非常简单的CMakeLists.txt,如下所示: cmake_minimum_required (VERSION 2.8) project (Tutorial) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} “${CMAKE_SOURCE_DIR}/c

正在尝试创建我的第一个cmake项目。我有一个非常简单的设置,但似乎无法找到_包的工作。我在Mac OS X 10.9.3上,从dmg软件包(cmake版本2.8.12.2)安装了cmake。我创建了一个非常简单的CMakeLists.txt,如下所示:

cmake_minimum_required (VERSION 2.8)
project (Tutorial)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} “${CMAKE_SOURCE_DIR}/cmake/Modules”)
message( STATUS ${CMAKE_MODULE_PATH} )
FIND_PACKAGE(GSL REQUIRED)

add_executable(Tutorial src/main.cpp)
并已将FindGSL.cmake文件(已下载)放置在cmake/Module文件夹中,如我的终端输出所示:

bash-3.2$ ls cmake/Modules/
FindGSL.cmake
然后,我从cmake获得以下输出:

bash-3.2$ cmake ../
-- “/Users/adam/repos/ctmc/cmake/Modules”
CMake Error at CMakeLists.txt:6 (FIND_PACKAGE):
  By not providing "FindGSL.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "GSL", but
  CMake did not find one.

  Could not find a package configuration file provided by "GSL" with any of
  the following names:

    GSLConfig.cmake
    gsl-config.cmake

  Add the installation prefix of "GSL" to CMAKE_PREFIX_PATH or set "GSL_DIR"
  to a directory containing one of the above files.  If "GSL" provides a
  separate development package or SDK, be sure it has been installed.


-- Configuring incomplete, errors occurred!
See also "/Users/adam/repos/ctmc/build/CMakeFiles/CMakeOutput.log".

有人能指出我做错了什么吗?

检查您的
cmake/Modules
目录权限。您没有执行的
execute
权限 目录这样,如果您有文件的完整路径,您就可以读取该文件,但您找不到它:

> ls cmake/Modules/FindMy.cmake 
cmake/Modules/FindMy.cmake
> cat CMakeLists.txt 
cmake_minimum_required(VERSION 3.0)
project(Foo)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules")
find_package(My REQUIRED)
> cmake -H. -B_builds
... OK
再次未经
x
-许可

> chmod -x cmake/Modules/
> rm -rf _builds/
> cmake -H. -B_builds
...
CMake Error at CMakeLists.txt:5 (find_package):
  By not providing "FindMy.cmake" in CMAKE_MODULE_PATH this project has asked
  CMake to find a package configuration file provided by "My", but CMake did
  not find one.

对我来说很好。你确定文件
/Users/adam/repos/ctmc/cmake/Modules/FindGSL.cmake
存在吗?奇怪,是的,在finder中签入,从命令行中似乎找不到它,想知道它是文件权限还是我需要设置的环境变量!当我回来的时候,我会在另一台计算机上尝试。我也在Linux机器上尝试过,但得到了相同的错误。如果FindGSL.cmake文件中有错误,它会给出这个消息吗?请注意,我已经使用INCLUDE而不是FIND_包使其全部正常工作。不确定为什么find_package对我不起作用
使用INCLUDE而不是find_package
它不一样,是的,这真的很奇怪)太棒了!!我知道这一定是我在做的傻事