【发布时间】:2018-10-26 05:27:09
【问题描述】:
我正在尝试在我的项目中使用 fltk 库,但遇到了一些麻烦。 这是我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.12)
project(pp)
set(CMAKE_CXX_STANDARD 14)
add_executable(pp main.cpp)
FIND_PACKAGE(FLTK REQUIRED)
FIND_PACKAGE(GTK REQUIRED)
TARGET_LINK_LIBRARIES(pp ${FLTK_LIBRARIES})
TARGET_LINK_LIBRARIES(pp ${GTK_LIBRARIES})
FLTK 版本:1.3.4
Cmake 版本:3.7.2
我已经在 /usr/local 目录中安装了 fltk 库
包含文件位于 /usr/local/include/FL
我看到 FindFLTK.cmake 查找以下文件: FL/Fl.h 或 FL/Fl.H,其中 FL/Fl.h 位于 /usr/local/include/FL 所以可以找到。
这里是错误信息:
找不到 FLTK(缺少:FLTK_INCLUDE_DIR)
你有解决这个问题的想法吗?
更新
CMakeLists.txt 的当前版本
cmake_minimum_required(VERSION 3.7.2)
project(pp)
set(CMAKE_CXX_STANDARD 14)
add_executable(pp main.cpp)
target_include_directories(pp PRIVATE /usr/local/include/FL)
set (LIBRARIES fltk Xrender Xcursor Xfixes Xext Xft fontconfig Xinerama pthread dl m X11)
message(STATUS mess: ${CMAKE_MODULE_PATH})
target_link_libraries(pp ${LIBRARIES})'
在这个配置中我可以编译和链接可执行文件,但是为什么使用 FIND_PACKAGE 的配置不起作用?我应该在哪里寻找错误?
【问题讨论】:
-
请同时显示有关查找 FLTK 的确切错误消息。
-
问题已更新。
-
不言而喻,但您是否尝试过设置 FLTK_INCLUDE_DIR ?
-
@PeterT:变量
FLTK_INCLUDE_DIR在模块FindFLTK.cmake 中被描述为一个result 变量,但不是一个可以由用户分配的变量。所以不应该明确设置FLTK_INCLUDE_DIR。 (这样的设置可能会被忽略,可能会破坏脚本,可能会起作用,但仅适用于特定版本,... - 换句话说,设置变量会导致未定义的行为)。 -
问题已更新。