Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
开罗图书馆与Cmake 我是C++和CGED的新手。我通过端口安装了cairo库。现在我想把cairo包括在我的项目中。我编写了CmakeLists.txt命令,如图所示_C++_Cmake_Cairo - Fatal编程技术网

开罗图书馆与Cmake 我是C++和CGED的新手。我通过端口安装了cairo库。现在我想把cairo包括在我的项目中。我编写了CmakeLists.txt命令,如图所示

开罗图书馆与Cmake 我是C++和CGED的新手。我通过端口安装了cairo库。现在我想把cairo包括在我的项目中。我编写了CmakeLists.txt命令,如图所示,c++,cmake,cairo,C++,Cmake,Cairo,但它不起作用,我得到了这个输出- CMake Warning at CMakeLists.txt:16 (find_package): By not providing "FindCairo.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Cairo", but CMake did not find one. Co

但它不起作用,我得到了这个输出-

CMake Warning at CMakeLists.txt:16 (find_package):
  By not providing "FindCairo.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Cairo", but
  CMake did not find one.

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

    CairoConfig.cmake
    cairo-config.cmake

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

请帮助我正确地包括cairo,问题是您的CMake版本没有(顺便说一下,即使是CMake的最新开发版本也没有…) 运行命令所需的文件
FindCairo.cmake
find\u package(Cairo)
,但您的包中尚未包含此文件。
一种解决方案是从web上获取
FindCairo.cmake
文件,在项目的根目录中创建
cmake
目录,并在
CMakeLists.txt
中添加一行

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
因此,来自
CMakeLists.txt
的代码片段如下所示:

cmake_minimum_required(VERSION 3.6)
project(HelloOpenGL)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)
add_executable(HelloOpenGL ${SOURCE_FILES})

#find_package(ImageMagick COMPONENTS Magick++)
#include_directories(${ImageMagick_INCLUDE_DIRS})
#target_link_libraries(HelloOpenGL ${ImageMagick_LIBRARIES})

find_package(Cairo)
include_directories(${Cairo_INCLUDE_DIRS})
target_link_libraries(HelloOpenGL ${Cairo_LIBRARIES})

如果您不使用现有的
FindCairo.cmake
(例如,您安装的Cairo可能包含一个这样的文件),则必须编写一个或找到另一种方法来包含该软件包。

您使用的是哪个版本的cmake?我尝试了这个方法,但只有在我通过
brew install cairo
重新安装cairo时,问题才得以解决。现在出现了一个新问题。IDE找不到包含。但是,我在编译时收到了以下错误消息:
架构x86\u 64的未定义符号:“\u cairo\u arc”,引用自:。。。ld:symbol未找到架构x86_64 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)make[3]:***[HelloOpenGL]错误1 make[2]:***[CMakeFiles/HelloOpenGL.dir/all]错误2 make[1]:***[CMakeFiles/HelloOpenGL.dir/rule]错误2 make:***[HelloOpenGL]错误2
cmake_minimum_required(VERSION 3.6)
project(HelloOpenGL)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)
add_executable(HelloOpenGL ${SOURCE_FILES})

#find_package(ImageMagick COMPONENTS Magick++)
#include_directories(${ImageMagick_INCLUDE_DIRS})
#target_link_libraries(HelloOpenGL ${ImageMagick_LIBRARIES})

find_package(Cairo)
include_directories(${Cairo_INCLUDE_DIRS})
target_link_libraries(HelloOpenGL ${Cairo_LIBRARIES})