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中包含Freetype,也找不到Freetype标头_Cmake_Freetype - Fatal编程技术网

即使cmake中包含Freetype,也找不到Freetype标头

即使cmake中包含Freetype,也找不到Freetype标头,cmake,freetype,Cmake,Freetype,我试图在cmake中包含FreeType,但在ft2build.h未找到时遇到问题。这是我的cmake文件 主要cmakelist: cmake_minimum_required(VERSION 2.8) project(game) add_subdirectory(Managers) add_subdirectory(Core) add_subdirectory(Rendering) add_subdirectory(Input) add_executable(game main.cpp

我试图在cmake中包含FreeType,但在ft2build.h未找到时遇到问题。这是我的cmake文件

主要cmakelist:

cmake_minimum_required(VERSION 2.8)

project(game)

add_subdirectory(Managers)
add_subdirectory(Core)
add_subdirectory(Rendering)
add_subdirectory(Input)

add_executable(game main.cpp)

target_link_libraries(game initglew initglut camera modelmanager scenemanager shadermanager renderinglib)

find_library(GLUT glut)
find_library(OPENGL GL)
find_library(GLEW GLEW)
find_library(MATH m)

find_package(Freetype REQUIRED)

target_link_libraries(game ${GLUT} ${OPENGL} ${GLEW} ${MATH} ${FREETYPE_LIBRARIES})
include_directories(${FREETYPE_INCLUDE_DIRS})

SET(GCC_FLAGS "-Wall -Wextra -pedantic -std=c++17 -Wno-unused-parameter -g")
add_definitions(${GCC_FLAGS})

install(TARGETS game DESTINATION bin)
cmake_minimum_required(VERSION 2.8)

project(rendering)
file(GLOB_RECURSE renderingcpps CONFIGURE_DEPENDS "*.cpp")
file(GLOB_RECURSE renderinghpps CONFIGURE_DEPENDS "*.hpp")

add_library(renderinglib STATIC ${renderingcpps})

install(TARGETS renderinglib DESTINATION lib)

install(FILES ${renderinghpps} DESTINATION include)

渲染cmakelist:

cmake_minimum_required(VERSION 2.8)

project(game)

add_subdirectory(Managers)
add_subdirectory(Core)
add_subdirectory(Rendering)
add_subdirectory(Input)

add_executable(game main.cpp)

target_link_libraries(game initglew initglut camera modelmanager scenemanager shadermanager renderinglib)

find_library(GLUT glut)
find_library(OPENGL GL)
find_library(GLEW GLEW)
find_library(MATH m)

find_package(Freetype REQUIRED)

target_link_libraries(game ${GLUT} ${OPENGL} ${GLEW} ${MATH} ${FREETYPE_LIBRARIES})
include_directories(${FREETYPE_INCLUDE_DIRS})

SET(GCC_FLAGS "-Wall -Wextra -pedantic -std=c++17 -Wno-unused-parameter -g")
add_definitions(${GCC_FLAGS})

install(TARGETS game DESTINATION bin)
cmake_minimum_required(VERSION 2.8)

project(rendering)
file(GLOB_RECURSE renderingcpps CONFIGURE_DEPENDS "*.cpp")
file(GLOB_RECURSE renderinghpps CONFIGURE_DEPENDS "*.hpp")

add_library(renderinglib STATIC ${renderingcpps})

install(TARGETS renderinglib DESTINATION lib)

install(FILES ${renderinghpps} DESTINATION include)

我将FreeType包含在最高级别的cmakelist中,但渲染子文件夹中的文件找不到ft2build.h。我试着跟随这个链接 这让我到了现在的位置,但仍然找不到ft2build.h。在尝试切换到cmake之前,我最初使用“-lfreetype-I/usr/include/freetype2”进行编译


我记录了一些输出,FREETYPE\u INCLUDE\u DIRS被/usr/INCLUDE/freetype2填充,但它的两个子计算机是空的,不确定这是否相关,我想这里的顺序很重要。您的
include_directories
命令位于调用
add_library
之后,因此无法从库中看到它。重新构造CMakeLists.txt以在
添加\u库
命令之前找到freetype,并在它之前执行
包含\u目录
包含\u目录(
->
目标\u包含\u目录(目标公共…)
我最初使用的是target include目录,但由于include\u目录似乎更通用,所以我将其切换了?而且看起来target可能只包含特定目标的目录,而且更改顺序似乎不起作用:(.AHA事实上它确实有效我必须在添加子目录之前移动它????我想我真的需要更好地了解cmake如何工作我想顺序在这里很重要。您的
include\u directories
命令位于调用
添加库
之后,因此从库中看不到它。重新构造您的CMakeLists.txt在
add\u library
命令之前查找freetype,并在它之前执行
包含目录的操作。
包含目录(
->
目标包含目录(目标公共…)
我最初使用的是target include目录,但由于include\u目录似乎更通用,所以我将其切换了?而且看起来target可能只包含特定目标的目录,而且更改顺序似乎不起作用:(.AHA事实上它确实有效我不得不在add_子目录之前移动它?????我想我真的需要更好地理解cmake是如何工作的