2014-10-27 188 views
5

首先,我在这里仍然是新手,因此不知道如何格式化代码,使其看起来很整洁,我希望这是可以接受的。 我遵循Stroustrup的编程原则和实践。你可能会猜到问题是什么......是FLTK安装。我已经仔细地遵循了所有步骤在VS C++ 2013中构建项目;第1204-1206页。 (我成功完成了附录C,与std_lib_facilities.h有关)。错误C1083:无法打开包含文件:'FL/Fl.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':没有这样的文件或目录

我也按照步骤从FLTK lib目录中将一些lib文件复制到c:\ users \ pablo \ desktop \ C++课程文件\ visual C++ \ win32project1 \ source.cpp,这是我为Visual Studio Express 2013创建的文件。 有人能帮助我吗?我在哪里可以找到这个丢失的文件?这个问题可能与FLTK版本有点过时以用于VS 2013有关吗? (当我编译FLTK库时,我得到了一些与备份文件和一些警告有关的错误。) 我已经研究了很长时间了。我在这个论坛发现了一些与此有关的问题,但与上述问题并不完全相关。首先十分感谢。

PS好吧,有一个问题需要处理相同的错误。我跟着提到的一些技巧作为对同一问题的答案,但无济于事。 (“对于这些类型的错误你可以做的一个巧妙的技巧就是将光标放到#include语句的文件名中并按下Ctrl + Shift + G,它会失败并显示一个消息框,显示包括路径解决方案是通过右键单击项目并转到Properties> C/C++> General并设置“Additional Include Directories”来简单地向SDK添加额外的包含路径。“)

显示的其他建议didn '不管用:(“确保include目录不是FL目录,而是它的父目录,原因是当你说#include”FL/Fl.h“时,你要求编译器进入文件夹名为FL找到FL.h,它将驻留在FL的父级。如果你指定FL作为包含目录,那么你只需要说#in包括“Fl.h”“)。

回答

2

这是因为他们所说的这是什么为包括#include <FL>#include <FL.h>这取决于程序的制作名为#include <FL/Fl.h>无头文件,但前者是最可能是你想做的事,因为它是标准版本的内容。 #include <FL.h>是一个旧库,甚至没有包含在标准中。它甚至不包括在每个平台中。在这个例子中你不应该使用.h版本。

对于其他两个头文件也是如此。

+0

嗯。仍在挣扎;它没有任何区别。也许它与环境变化和路径有关,因为前一段时间我安装了Netbeans并且使用MingW编译器来处理IDE。虽然我不确定我是否应该惹上这条路。的确非常令人沮丧。获取相同的错误。 – Pablo 2014-10-27 17:58:52

+0

此答案不正确。它写的是FL/Fl.h,因为它期望你在你的include目录中维护这个结构。您应该保留GL目录,因为FL目录中的某些标题会在GL目录中寻找其他包含在其中的GL目录中。 – user3353819 2014-10-28 12:40:53

1

另一个答案不是远程真实的(我的字面意思就是编写了一个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 \添加到配置属性 - >链接器 - >常规 - >其他库目录

那么你需要链接到特定的库。由于链接器现在知道你在哪里看,所以你需要指定路径,但只是命名它们。为此,请转至配置属性 - >连接器 - >输入 - >其他依赖项,单击下拉选项,单击编辑并在单独的行上添加(且不含这些逗号)fltkd.lib,fltkformsd.lib,fltkzlib.lib ,wsock32.lib

+0

好吧,谢谢你的答案。我认为我所做的事情存在根本性错误,因为尽管尝试实施所有建议,但FLTK并不想打球。我可能必须删除FLTK文件并重新安装它们。我认为这可能与我安装1.1.10版本有关,因为它显示了一个.zip文件。我将安装1.3.2 .gz并使用7-zip解压缩。 – Pablo 2014-10-28 09:12:54

+0

请按照以下一些在线说明进行操作:http://www.c-jump.com/bcc/common/Talk2/Cxx/FltkInstallVC/FltkInstallVC.html您可以明确说出它所说的内容并复制“FL”和“GL” 'VS的目录包括文件夹和'.lib'文件到lib文件夹,这意味着你只需要在'input'字段中添加库就可以做我说的,不要复制它们,并告诉编译器在哪里寻找他们。小心:在编译/安装FLTK时,如果在调试模式下它会生成fltkd.lib文件,如果在发行版中生成fltk.lib文件。检查你已经完成并适当链接。 – user3353819 2014-10-28 12:37:44

+0

要在windows下构建FLTK,请转到IDE目录,使用vc.net解决方案。它可能需要转换为VS2013。不要使用vc6解决方案。 – cup 2014-10-28 15:30:39

相关问题