使用Microsoft Visual C ++ 2010 Express的FLTK-1.1.10

时间:2012-07-10 17:30:53

标签: c++ visual-studio-2010 fltk

我正在尝试遵循编程 - 使用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)详细说明了在编译过程中发生的错误,如果感兴趣的话。

我已经大量搜索了这个问题,并且尚未找到真正的解决方案。我希望这篇文章能够为我和其他未来的程序员澄清这个问题。

2 个答案:

答案 0 :(得分:1)

嗯,这花了我足够长的时间,但我终于弄明白了。 这似乎是土地的平躺。

  1. FLTK 1.3.0与头文件兼容,但graph.cpp需要 允许运行的小改动。
  2. FLTK 1.1.10无法使用Visual Express 2010正确构建,但会 使用2008版本。
  3. 标题文件适用于两者,但您需要进行一些小改动 到Graph.cpp让他们工作。
  4. 在让所有人都感到沮丧之后,我认为为可能处于类似情况的人写一个循序渐进的指南是公平的。本书面向新手程序员,而不是已经能够调试其头文件和cpp文件的人。我道歉是解决方案有点冗长,但我认为这对于像我这样可能面对它的人来说是合适的。

    Visual Express 2008/2010指南

    1)构建FLTK。不是听起来那么容易,但也不是太糟糕。 2008年使用FLTK 1.1.0。在2010年使用1.3.0。

    1. 2010年,请参阅我在此处撰写的解决方案 - Microsoft 2010 visual c , installing FLTK

    2. 2008年运行C:\ fltk-1.1.10 \ vc2005 \ fltk.lib.vcproj。

      如果构建过程中出现任何错误,则需要确定问题所在。

    3. 2)设置一个新项目

      1. 2010年只需按照上面的指南
      2. 对于2008年 - 基本相同的想法,但有一些变化
        1. 确保将1.3.0的所有引用更改为1.1.10
        2. 在输入部分,而不是用分号分隔.lib文件;改为使用空格,因此链接器>输入>其他依赖关系将如下所示:c:\ fltk-1.1.10 \ lib \ fltk.lib wsock32.lib comctl32.lib c:\ fltk-1.1.10 \ lib \ fltkjpeg。 lib c:\ fltk-1.1.10 \ lib \ fltkimages.lib
      3. 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中的文件放入正确的文件夹中。

        1. 2008年,在一个名为headertest的项目中 -
          1. C:\ Users \ User \ Documents \ Visual Studio 2008 \ Projects \ headertest \ 将std_lib_facilities.h放在这里
          2. C:\ Users \ User \ Documents \ Visual Studio 2008 \ Projects \ headertest \ headertest \ 把他网站上的所有其他.cpp和.h文件放在这里,当然你的headertest.cpp和.h(如果需要的话)也会在这里创建。
          3. 确保您已按照上述指南中的步骤正确设置项目。
        2. 2010年名为Fri_FLTK_Test的项目 -
          1. 执行与上述相同的操作,但将文件放在2010年的等效文件中 - C:\ Users \ User \ Documents \ Visual Studio 2008 \ Projects \ headertest 和..Visual Studio 2010 \ Projects \ Fri_FLTK_Test \ Fri_FLTK_Test
        3. 5)将.h和.cpp文件添加到您的活动项目中。

          1. 只需右键单击项目add&gt; Existing Items - 选择默认目录中的所有.h和.cpp文件。您不需要添加.. \ std_lib_facilities.h,因为您已经直接引用它。不要问我为什么,但这有效。
          2. 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,感谢他对这个问题的帮助。

答案 1 :(得分:0)

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

你看过这篇文章吗?

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

-Si。