好吧,这花了我足够长的时间,但我终于弄明白了。这似乎是土地的布局。
- FLTK 1.3.0 与头文件兼容,但 graph.cpp 需要稍作更改才能运行。
- FLTK 1.1.10 不能与 Visual Express 2010 一起正确构建,但可以与 2008 版本一起使用。
- 头文件两者都可以使用,但您需要对 Graph.cpp 进行一些小的更改才能使它们正常工作。
在让所有这些都正常工作感到沮丧之后,我认为为可能处于类似情况的人编写分步指南是公平的。这本书面向的是新手程序员,而不是已经能够调试他的头文件和 cpp 文件的人。我很抱歉解决方案有点冗长,但我认为它只适合像我这样可能面临它的人。
Visual Express 2008 / 2010 指南
1) 构建 FLTK。不像听起来那么容易,但也不算太糟糕。2008 年使用 FLTK 1.1.0。2010 年使用 1.3.0。
对于 2010 年,请参阅我在此处编写的解决方案 – Microsoft 2010 visual c ,安装 FLTK
对于 2008,请改为运行 C:\fltk-1.1.10\vc2005\fltk.lib.vcproj。
如果在构建过程中出现任何错误,您将需要找出问题所在。
2) 建立一个新项目
- 对于 2010 年,只需按照上面的指南
- 2008 年——基本相同,但有一些变化
- 确保将 1.3.0 的所有引用更改为 1.1.10
- 在输入部分,而不是用分号分隔 .lib 文件;请改用空格,因此链接器>输入>附加依赖项将如下所示 c:\fltk-1.1.10\lib\fltk.lib wsock32.lib comctl32.lib c:\fltk-1.1.10\lib\fltkjpeg。库 c:\fltk-1.1.10\lib\fltkimages.lib
3) 运行测试程序以确保您的 FLTK 工作正常,尝试 -
#include <FL/Fl.h>
#include <FL/Fl_Window.h>
int main()
{
Fl_Window win(320,200);
win.show();
return Fl::run();
}
如果这里有任何错误,那么您将无法继续。
4) 将他网站上的文件放入正确的文件夹中。
- 对于 2008 年,在名为 headertest 的项目中 -
- C:\Users\User\Documents\Visual Studio 2008\Projects\headertest\ 把 std_lib_facilities.h 放在这里
- C:\Users\User\Documents\Visual Studio 2008\Projects\headertest\headertest\ 将他网站上的所有其他 .cpp 和 .h 文件放在这里,当然你的 headertest.cpp 和 .h (如果需要)将是在这里创建。
- 确保按照上面我的指南中的步骤正确设置了项目。
- 2010 年在名为 Fri_FLTK_Test 的项目中 -
- 执行与上述相同的操作,但将文件放在 2010 等效项中 - C:\Users\User\Documents\Visual Studio 2008\Projects\headertest 和 ..Visual Studio 2010\Projects\Fri_FLTK_Test\Fri_FLTK_Test
5) 将 .h 和 .cpp 文件添加到您的活动项目中。
- 只需右键单击项目添加>现有项目 - 选择默认目录中的所有 .h 和 .cpp 文件。您不需要添加 ..\std_lib_facilities.h 因为您已经直接引用了它。不要问我为什么,但这有效。
6)现在你会发现,如果你运行这个项目,你会得到一堆错误,最重要的是——
c:\users\user\documents\visual studio 2010\projects\fri_fltk_test\graph.cpp(237): 错误 C2084: 函数 'Graph_lib::Circle::Circle(Point,int)' 已经有一个主体
7) 我们可以通过打开 Graph.cpp 并注释掉 Circle::Circle 部分来解决这个问题,比如 -
//Circle::Circle(Point p, int rr) // center and radius
//:r(rr)
//{
// add(Point(p.x-r,p.y-r)); // store top-left corner
//}
8) 保存更改并再次运行您的项目,您应该会发现它可以工作了!9) 现在最好的部分,将书中的代码放入(或从-Chapter13/chapter.13.2.cpp复制它并运行它!它应该可以工作。
任务完成!
认为在那之后我应该喝啤酒!我花了很多时间来弄清楚这一切,查看了 Msys、g++、Netbeans 和许多其他与 IDE 相关的东西。但是让它在我最初的选择上工作是一种很好的感觉。我希望本指南可以帮助遇到类似情况的其他人。
特别感谢 Dream.In.Code 论坛的 Skydiver 对这个问题的帮助。