带有 Microsoft Visual C++ 2010 Express 的 FLTK-1.1.10

Posted

技术标签:

【中文标题】带有 Microsoft Visual C++ 2010 Express 的 FLTK-1.1.10【英文标题】:FLTK-1.1.10 with Microsoft Visual C++ 2010 Express 【发布时间】:2012-07-10 17:30:52 【问题描述】:

我正在尝试遵循编程 - 使用 C 的原则和实践,并且到目前为止我很喜欢它。上周初,我遇到了一个阻碍进一步进展的问题。我需要安装 FLTK。

在成功构建和运行 FLTK-1.3.0(请参阅我的其他问题/解决方案)后,我遇到了无法使用 Stroustrup 的头文件运行的问题。我认为这是由于版本不同,但不确定。

所以我回到尝试让 1.1 工作。

我无法使用 MVC++2010 从他的网站构建 FLTK-1.1.10 或 fltk-1.1.9。

所以这就引出了我们的问题

1) 如果我使用 MinGW/Msys 构建它,它仍然可以从 VC++ 运行吗? 到目前为止,我一直试图弄清楚 MinGW/Msys,但收效甚微,所以我还没有构建任何东西,所以我还不能自己测试。

2) 如果它不能运行 MinGW 构建,有没有办法用 VC++ 构建它?

据我了解 -Building 将在 FLTK 目录中创建更多文件,以便我使用它。 -MinGW 使用与 VC++ 不同的编译器,它们不能很好地协同工作

我觉得我在这部分浪费了很多时间,但这是一次很好的学习经历。可能对我的血压不太好。

我想此时我的主要选择是转移到另一个 IDE。 Eclipse 看起来很不错。但我真的很想解决这个问题,而不是离开 VC++。

我之前的帖子 (Microsoft 2010 visual c , installing FLTK) 详细介绍了编译期间发生的错误,以防万一。

我用谷歌搜索了这个问题,但还没有找到真正的解决方案。我希望这篇文章能为我自己和其他未来的程序员澄清这个问题。

【问题讨论】:

构建任何东西仍然没有运气。试图弄清楚如何使用 Cygwin、MinGW 等,但它们对用户不是很友好。不得不构建一个过时版本的 FLTK 以使用提供的标头运行,这非常令人沮丧。 这很奇怪。下面有一个正在回答这个问题的对话,现在它似乎已经消失了。如果有人对此有解决方案,我很想听听。或者也许发布一个使用书中代码的工作解决方案? 经过绝对疯狂的时间试图找到解决这个问题的方法后,我想我会放弃并转向另一个 IDE。如果有人对此有解决方案,我会很高兴听到它。 FKTL 1.3 可以工作,但我还没有让它与头文件一起工作。 FLTK 1.1.10 或 .9 不会构建。哦,好吧,至少我学到了……一些东西,也许…… 【参考方案1】:

好吧,我花了很长时间,但我终于弄明白了。 这似乎是土地的布局。

    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 , installing 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) 将his website 中的文件放入正确的文件夹中。

    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 帮助解决这个问题。

【讨论】:

【参考方案2】:

可能是因为您运行的是 Express 版吗?我遇到过类似的问题,不得不切换到旧版本的 Express。

你看过这篇文章吗?

http://answerpot.com/showthread.php?275672-FLTK+%26+Visual+C%2B%2B+Express%3F

-硅。

【讨论】:

感谢您的回复!其实我已经看过那个帖子了。不过再看一遍就好了。这可能与它的表达有关,但我越想它我就越怀疑它。我的 FLTK 1.3 工作正常,当我开始使用他的头文件时就出错了。

以上是关于带有 Microsoft Visual C++ 2010 Express 的 FLTK-1.1.10的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Visual C++ Compiler for Python 2.7

Microsoft Visual C++与Visual Studio的区别是啥?

python 2.7 error: Microsoft Visual C++ 9.0 is required

电脑问题 Microsoft visual c++ Runtime Library

microsoft visual c++ 6.0英文版怎么安装?

Microsoft Visual C++ Runtime Libuary