首先,我在这里仍然是新手,因此不知道如何格式化代码,因此在这个问题中看起来很整洁,我希望这是可以接受的。 我遵循Stroustrup的编程原则和实践。你可能会猜到问题是什么......是的FLTK安装。我已仔细按照所有步骤在VS C ++ 2013中构建项目;第1204-1206页。 (我已经成功完成了附录C,与std_lib_facilities.h有关。)
我正在尝试构建以下win32项目,如书中所示:
#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();
}
构建解决方案后,我收到一条错误,内容如下:错误1错误C1083:无法打开包含文件:'FL / Fl.h':没有这样的文件或目录
我还按照步骤将一些lib文件从FLTK lib目录复制到c:\ users \ pablo \ desktop \ c ++ course files \ visual c ++ \ win32project1 \ source.cpp这是我为Visual创建的文件Studio Express 2013。 有人能帮助我吗?我在哪里可以找到这个丢失的文件?问题可能与FLTK版本在VS 2013中使用有点过时这一事实有关吗? (当我编译FLTK库时,我遇到了一些与备份文件和一些警告有关的错误。) 我已经研究了很久了。我在这个论坛中发现了一些与此有关的问题,但与上述问题并不完全相关。非常感谢提前。
PS嗯,有一个问题与同一个错误有关。我已经按照提到的一些技巧作为对同一个问题的回答,但无济于事。
(“对于这些类型的错误,您可以做的一个巧妙的技巧是将光标放在#include语句的文件名中,然后按Ctrl + Shift + G。它将失败并显示一个消息框,显示包含的内容路径是。解决方案是通过右键单击项目并转到属性&gt; C / C ++&gt;常规并设置“其他包含目录”,简单地向SDK添加其他包含路径。“)
显示的其他建议也不起作用:(“确保include目录不是FL目录,而是其父目录。原因是你说#include”FL / Fl.h“,你'请求编译器进入名为FL的文件夹以查找Fl.h,它将驻留在FL的父级中。如果将FL指定为包含目录,则只需要说#include“Fl.h”“)。
答案 0 :(得分:2)
这是因为没有名为#include <FL/Fl.h>
的头文件,这意味着它包括#include <FL>
或#include <FL.h>
,具体取决于您制作的程序,但前者最有可能你想做什么,因为它是标准版本。 #include <FL.h>
是一个旧库,甚至不包含在标准中。它甚至不包含在每个平台中。您不应该在此示例中使用.h版本。
对于其他两个头文件也可以这样说。
答案 1 :(得分:2)
另一个答案远非如此(我实际上只编译了一个FLTK程序,其中包含#include <FL/xxx.H>
形式的所有标题。当您下载FLTK时,您会得到一个具有此结构的目录(例如fltk-1.3.2)
/fltk-1.3.2/
FL/
GL/
src/
lib/
examples/
+ other stuff
子目录FL包含所有头文件。因此,如果您放置的fltk-1.3.2目录位于\ foo \那么您需要将\ foo \ fltk-1.3.2 \添加到您的其他包含头字段。要小心,你可能不小心选择了错误的目录(它发生了),或者你可能已经将文件的压缩版本的内容提取到自己的嵌套版本中,这意味着你可能有类似\ foo \ fltk-1.3.2的内容。 \ fltk-1.3.2 \所以看看。
如果它找不到标题,你几乎肯定会在错误的位置或错误的格式中找到额外的包含目录字段。单击下拉按钮,单击编辑并手动单击新文件夹按钮并导航到它。
接下来你会发现你需要将链接器指向正确的方向。在上面安装库文件的默认位置(.lib静态应该是FLTK的默认值)所以你需要将\ foo \ fltk-1.3.2 \ lib \添加到配置属性 - &gt;链接器 - &gt;一般 - &gt;其他库目录
那么您需要链接到特定的库。由于链接器现在知道在哪里查找你需要指定路径,但只需命名它们。为此,请转到配置属性 - &gt;链接器 - &gt;输入 - &gt;其他依赖项,单击下拉选项,单击编辑并在单独的行上添加 (并且不带这些逗号)fltkd.lib,fltkformsd.lib,fltkzlib.lib,wsock32.lib