开罗图书馆和Cmake
Cairo library and Cmake
我是c++和cmake的新手。我通过端口安装了开罗图书馆。现在我想将开罗纳入我的项目。我编写了 CmakeLists.txt 命令,如下所示。
cmake_minimum_required(VERSION 3.6)
project(HelloOpenGL)
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})
if(CAIRO_FOUND)
message("Cairo found")
else()
message("Cairo not found")
endif()
但它不起作用,我得到这个输出 -
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.
请帮我正确包括开罗
问题是你的 CMake 版本没有(顺便说一句,即使是 CMake 的最新开发版本也没有它......https://gitlab.kitware.com/cmake/cmake/tree/master/Modules)该文件FindCairo.cmake
运行命令所需的find_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变量,除非显式重写,否则使用默认值
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用CMake创建QML插件
- cmake如何在fedora工作站中找到boost静态库包
- 使用CMake检测支持的C++标准
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 如何使用CMake编译.proto文件来生成.grpcp.pb.cc和.grpc.pb.h文件
- cmake在我的项目中所需的所有静态库都不成功
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 无法链接 CMake 中的本地库
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何在Ubuntu中使用cmake设置qt4
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 为什么 cmake 许可证<>样式不包括?
- cmake更新缓存的变量
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- Abseil和CMake在图书馆
- 开罗图书馆和Cmake
- 如何使用jhbuild没有CMAKE文件来构建图书馆