首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误C1083:无法打开包含文件:'FL/Fl.h':没有这样的文件或目录

错误C1083:无法打开包含文件:'FL/Fl.h':没有这样的文件或目录
EN

Stack Overflow用户
提问于 2014-10-27 09:29:02
回答 2查看 10.2K关注 0票数 7

首先,我在这里还是个新手,因此不知道如何格式化代码,以便在这个问题中看起来很整洁,我希望这是可以接受的。我正在遵循Stroustrup的编程原则和实践。您可能会猜到is...yes FLTK安装有什么问题。我仔细地遵循了在VS C++ 2013中构建项目的所有步骤;第1204-1206页。(我已经成功地完成了附录C,这与std_lib_facilities.h有关)。

我正在尝试构建以下win32项目,如书中所示:

代码语言:javascript
复制
#include <FL/Fl.h>
#include <FL/Fl_Box.h>
#include <FL/Fl_Window.h>

int main()
{
Fl_Window window(200, 200, "Window title");
Fl_Box box(0, 0, 200, 200, "Hey, I mean, Hello, World!");
window.show();
return Fl::run();
}

构建解决方案后,我收到一条错误消息: error 1 Error C1083: Cannot open include file:'FL/Fl.h':没有这样的文件或目录

我还按照步骤将一些lib文件从FLTK lib目录复制到c:\users\pablo\desktop\c++ course files\visual c++\win32project1\source.cpp中,这是我为Visual Studio Express 2013创建的文件。有人能帮帮我吗?我在哪里可以找到这个丢失的文件?这个问题是否与FLTK版本在VS2013中使用有点过时有关?(当我编译FLTK库时,我得到了一些与备份文件有关的错误和一些警告。)我已经研究了很长时间,而且很努力。我在这个论坛上发现了一些与此相关的问题,但与上面提到的问题并不完全相关。非常提前谢谢你。

还有一个问题和同样的错误有关。我遵循了一些技巧,作为对同一问题的答案,但都没有用。

(“对于这些类型的错误,您可以做的一个巧妙的技巧是将光标放在#include语句的文件名上,然后按Ctrl+Shift+G。它将失败,并显示一个消息框,显示包含路径。解决方案是,通过右键单击您的项目并转到”属性“>”C/C++“>”常规“,然后设置”其他包含目录“,向SDK添加额外的包含路径。)

显示的其他建议也不起作用:(“确保include目录不是FL目录,而是它的父目录。原因是当你说#include " FL /Fl.h”时,你要求编译器进入一个名为FL的文件夹来查找Fl.h,它将驻留在FL的父目录中。如果你指定FL作为include目录,那么你只需要说#include "Fl.h"")。

EN

回答 2

Stack Overflow用户

发布于 2014-10-28 00:56:51

另一个答案一点也不正确(我刚刚编译了一个FLTK程序,所有头文件的格式都是#include <FL/xxx.H>)。当您下载FLTK时,您会得到一个目录(比如fltk-1.3.2),其结构如下

代码语言:javascript
复制
/fltk-1.3.2/
    FL/
    GL/
    src/
    lib/
    examples/
    + other stuff

子目录FL包含所有的头文件。因此,如果fltk-1.3.2目录位于\foo\,则需要将\foo\fltk-1.3.2\添加到附加的include headers字段中。一定要小心,您可能意外地选择了错误的目录(发生这种情况),或者您可能将压缩版本的文件内容解压缩到自身的嵌套版本中,这意味着您可能有类似\foo\fltk-1.3.2\fltk-1.3.2\的内容,所以请看一下。

如果它找不到头文件,那么几乎可以肯定是附加的include directories字段在错误的位置或错误的格式中查找。单击下拉按钮,单击编辑,然后手动单击新建文件夹按钮并导航到该文件夹。

接下来您会发现,您必须将链接器指向正确的方向。在上面的默认位置安装库文件(fltk默认为.lib静态),因此您需要将\foo\fltk-1.3.2\lib\添加到配置属性->链接器->常规->其他库目录

然后,您需要链接到特定的库。由于链接器现在知道在哪里查找,您需要指定路径,但只需命名它们。为此,请转至configuration properties和Linker -> Input -> Additional dependencies,单击下拉选项,然后单击edit -> add (不带逗号) fltkd.lib、fltkformsd.lib、fltkzlib.lib、wsock32.lib

票数 3
EN

Stack Overflow用户

发布于 2014-10-27 09:32:23

这是因为没有名为#include <FL/Fl.h>的头文件,他们的意思是包含#include <FL>#include <FL.h>,这取决于您编写的程序,但前者最有可能是您想要做的,因为它是标准版本。#include <FL.h>是一个旧的库,甚至没有包含在标准中。它甚至不是每个平台都包含的。在此示例中,您不应使用.h版本。

对于其他两个头文件也可以这样说。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26579955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档