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 - 即使我包含正确的目录也找不到标题[重复]的主要内容,如果未能解决你的问题,请参考以下文章
即使已安装 Composer 也找不到 ext-mbstring