将freetype与cmake链接
Linking freetype with cmake
在使用extern C
库构建C++11项目时,在linux下使用cmake
链接freetype 2
时遇到问题。
对于cmake和freetype 2,我基本上有两个选项:
- 与
freetype-config --libs
一样使用实用程序freetype-config
- 使用
FindFreetype
cmake模块
现在我正在尝试实现第二个选项,但我对cmake
不是很熟练,也不理解它的逻辑
我的问题是链接阶段,我不知道如何正确地做到这一点,加上这个模块不像freetype-config --libs
那样完整,CCD_8真正包括了我需要的所有库和标志,而不仅仅是文件的路径;所以我假设我必须对CCD_ 9和CCD_。
CMakeLists.txt
cmake_minimum_required (VERSION 2.6)
project (FreetypeTutorials1)
include(FindFreetype)
include_directories(${FREETYPE_INCLUDE_DIRS})
SET(CMAKE_CXX_FLAGS "-O2 -std=c++11")
SET(CMAKE_EXE_LINKER_FLAGS "-v -lfreetype")
add_executable( demo "${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp")
./src/main.cpp
(只是一些随机代码,所以我有一些东西要提供给编译器(
extern "C" {
#include <ft2build.h>
#include FT_FREETYPE_H
}
#include <iostream>
int main()
{
FT_Library library;
auto error = FT_Init_FreeType(&library);
if (error)
{
std::cout << "An error !n";
}
}
要加载类似FindFreetype.cmake
的模块,需要在cmake中使用find_package
-命令。第一个参数是包名称。cmake会自动添加相应文件名的"Find"。
虽然include
可能与find_package
配合使用,但您可以添加一些标志。例如,如下所示,REQUIRED
,在找不到freetype时使cmake失败。
此外,应使用命令target_link_libraries
来完成与cmake的链接。
这就是我给你写CMakeLists.txt的方式:
cmake_minimum_required (VERSION 2.6)
project (FreetypeTutorials1)
find_package(Freetype REQUIRED)
SET(CMAKE_CXX_FLAGS "-O2 -std=c++11")
SET(CMAKE_EXE_LINKER_FLAGS "-v")
add_executable( demo src/main.cpp) # CMAKE_CURRENT_SOURCE_DIR is implicit here
target_link_libraries(demo ${FREETYPE_LIBRARIES})
target_include_directories(demo PRIVATE ${FREETYPE_INCLUDE_DIRS})
CCD_ 19是独立于平台的,而CCD_。
CMakeLists.txt将在其他可用freetype的平台上运行。
(编辑2019:使用target_include_directories()
而不是include_directories()
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- 无法链接 CMake 中的本地库
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- Cmake 链接问题:未定义对 Button::mousePressEvent(QGraphicsSceneMouseE
- 在 CMake 中为每个目标设置编译器/链接器标志
- 链接 cmake 时出现未定义的引用错误
- 如何将GTest与CMake一起使用?遵循谷歌指南时的链接问题
- 将 SDL2 与 CMake 链接起来
- CMake 库链接使用两个不同的编译器版本
- CMake 无法链接外部库
- CMake - 更改共享库链接选项
- CMake 3.5 中的链接器标志位置
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 如何避免在 cmake 中自动链接 Qt5 库?
- 将源中的 GLEW 与 cmake 静态链接
- CMake 错误:链接器命令失败,退出代码为 1 和 cpp.o 文件
- 找不到 CMake 链接的库
- Opencv 链接 CMAKE 不起作用 Ubuntu 16.04 Docker
- 如何在没有外部脚本的情况下链接CMake和SQLite
- 链接CMake的Openscenegraph库