FLTK - 即使我包含正确的目录也找不到标题[重复]

Posted

技术标签:

【中文标题】FLTK - 即使我包含正确的目录也找不到标题[重复]【英文标题】:FLTK - Can't find headers even if I include the correct directory [duplicate] 【发布时间】:2017-03-31 15:10:51 【问题描述】:

我正在尝试从 linux 编译一个 FLTK 项目,使用以下命令的输出:

fltk-config --use-gl --use-images --ldflags

还有:

fltk-config --use-gl --use-images --cxxflags

我正在使用这个makefile来编译项目:

我从 fltk.org 下载了最新的 FLTK 版本,然后编译并安装了它。我还安装了 X11 和 OpenGL。但我仍然收到这些错误:

我检查了文件系统,这些头文件位于 /usr/local/include/FL 中,即使它们未被识别,尽管我包含了目录 (-I/usr/local/include),然后在 .cpp 和.h 文件:

#include <FL/Fl_PNG_Image.H>
#include <FL/Fl_Box.H>
etc...

可能是什么问题?我需要安装更多库吗?

编辑

我尝试更改生成文件:

CXXFLAGS=-I/usr/local/include -I/usr/local/include/FL/images -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -I/home/ramy/boost_1_63_0 -std=c++11

LDFLAGS=-L/usr/local/lib -lfltk_images -lfltk_png -lz -lfltk_jpeg -lfltk_gl -lGLU -lGL -lfltk -lXrender -lXcursor -lXfixes -lXext -lXinerama -lpthread -ldl -lm -lX11 -L/home/ramy/boost_1_63_0/lib

SOURCES=Car.cpp Map.cpp CarState.cpp Utilities.cpp CarCollection.cpp TableView.cpp MapView.cpp
OBJECTS=Car.o Map.o CarState.o Utilities.o CarCollection.o TableView.o MapView.o

make:
    g++ $(LDFLAGS) $(CXXFLAGS) -c $(SOURCES)
    g++ $(LDFLAGS) $(CXXFLAGS) -o ../Evolution table-example.cpp $(OBJECTS)
clean:
    rm -f $(OBJECTS) ../Evolution

但我仍然遇到同样的错误。

【问题讨论】:

我认为您肯定缺少一些 -l 标志。 @AlexanderLapenkov fltk-config 应该给出正确的输出。难道是我需要安装除 FLTK 和 OpenGL 之外的更多库吗?如果我签入 /usr/local/lib 有 libfltk、libfltk_png 等...但没有 libxext、libxcursor 和许多其他。 您的错误不是报告缺少标头的编译器错误。它们是链接器错误,报告无法找到链接中引用的符号的定义。它们是因为您在引用它们的所有目标文件之前链接所有库。 @MikeKinghan 我尝试分两步编译目标(首先是对象,然后是包含主对象的源),正如您在我的编辑中看到的那样。但我仍然遇到同样的错误。 【参考方案1】:

这些错误并不意味着您缺少标头,而是缺少库。

Here 你可以阅读基础(下到“使用标准编译器编译程序”)。 基本上将-L/usr/local/lib -lfltk -lXext -lX11 -lm 添加到您的应用程序编译器命令中;或使用fltk-config --cxxflags

【讨论】:

我就是这么做的。我已经在使用 fltk-config 的输出了。

以上是关于FLTK - 即使我包含正确的目录也找不到标题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

即使通过 Maven 添加也找不到 JDBC 驱动程序

即使已安装 Composer 也找不到 ext-mbstring

即使 tsc 成功解决它,也找不到 Typescript 模块

为啥即使安装了 FBX 模块也找不到?

即使声明了 Typescript 也找不到属性

即使存在也找不到 Composer 类