2012-07-10 155 views
1

我试图遵循编程 - 使用C的原则和实践,并且我很喜欢它。上周一开始,我遇到了一个阻碍了进一步发展的问题。我需要安装FLTK。FLTK-1.1.10与Microsoft Visual C++ 2010 Express

成功管理构建并运行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++来构建它?

从我的理解 -建筑将在FLTK目录中创建更多的文件,这将允许我使用它。 -MinGW对VC++使用了不同的编译器,它们不能很好地一起玩

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

我想在这一点上我的主要选择是移动到另一个IDE。 Eclipse看起来相当不错。但我真的想解决这个问题,而不是离开VC++。

我的上一篇文章(Microsoft 2010 visual c , installing FLTK)详细介绍了编译过程中发生的错误,以防感兴趣。

我已经严重搜索了这个问题,还没有找到一个真正的解决方案。我希望这篇文章能够为我和其他程序员澄清这个问题。

+0

仍然没有运气得到任何东西。试图找出如何使用Cygwin,MinGW等,但它们不是非常用户友好的。必须构建过时版本的FLTK才能使用提供的标题运行,这非常令人沮丧。 – David 2012-07-12 05:17:29

+0

这很奇怪。在回答这个问题时,下面正在进行一次谈话,现在它似乎消失了。如果有人有解决这个问题,我很乐意听到它。或者可能发布一个使用该书中代码的工作解决方案? – David 2012-07-18 16:12:47

+0

经过绝对疯狂的时间,试图找到解决这个问题的办法,我想我会放弃并转移到另一个IDE。如果有人能够解决这个问题,我会很高兴听到它。 FKTL 1.3的作品,但我还没有得到它与头文件。 FLTK 1.1.10或.9不会生成。哦,至少我学到了......东西,也许...... – David 2012-07-18 16:59:21

回答

1

嗯,这让我感觉很长,但我终于明白了。 这似乎是土地的奠定。

  1. FLTK 1.3.0与头文件兼容,但graph.cpp需要 稍作修改以允许运行。
  2. FLTK 1.1.10将无法​​使用Visual Express 2010正确构建,但 将与2008版一起使用。
  3. 头文件适用于两者,但您需要对Graph.cpp进行小小更改 以使它们可以正常工作。

在经历了所有这些工作的挫折之后,我认为为可能处于类似情况的人编写一步一步的指南是公平的。本书针对的是新手程序员,而不是已经能够调试他的头文件和cpp文件的人。我很抱歉,解决方案有点冗长,但我认为它只适用于像我这样可能面对它的人。

视觉快递二千零十分之二千零八引导

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代替。

    如果在构建过程中有任何错误,您将需要找出问题所在。

2)建立一个新的项目

  1. 2010年只需按照上述
  2. 的指南2008年 - 基本上是相同的想法,但有一些变化
    1. 确保将1.3.0的所有引用更改为1.1.10
    2. 在输入部分中,而不是使用分号分隔.lib文件;请使用空格,以便链接器> Input> Additional dependencies将如下所示: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)运行一个测试程序,以确保您的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:\用户\用户\文档\ Visual Studio 2008的\项目\ headertest \ 放std_lib_facilities.h这里
    2. C:\用户\ User \ Documents \ Visual Studio 2008 \ Projects \ headertest \ headertest \ 将其他所有.cpp和.h文件从他的网站放在这里,当然你的headertest.cpp和.h(如果需要)将在这里创建。
    3. 确保您已按照上述指南中的步骤正确设置了项目。
  2. 2010年在一个名为Fri_FLTK_Test项目 -
    1. 执行上面一样,但是把在2010年的相当于文件 - C:\用户\用户\文档\ Visual Studio 2008的\项目\ headertest 和..Visual Studio 2010的\项目\ Fri_FLTK_Test \ Fri_FLTK_Test

5)h和.cpp文件添加到您的活动项目。

  1. 只需右键单击项目添加>现有项目 - 选择默认目录中的所有.h和.cpp文件。您将不需要添加.. \ std_lib_facilities.h,因为您已经直接参考了这个。不要问我为什么,但这是有效的。

6)现在你会发现,如果你运行该项目,你会得到一堆错误,最重要的读取 -

C:\用户\用户\文档\ Visual工作室 2010 \项目\ fri_fltk_test \ graph.cpp(237):错误C2084:函数 'Graph_lib ::圈::圈(点,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为他提供这个问题的帮助

0

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

你见过这篇文章吗?

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

-Si。

+0

感谢您的回复!其实我已经看过那篇文章了。但再看一遍很好。它可能与它被表达有关,但我越想它,我越怀疑它。我有FLTK 1.3正常工作,当我开始使用他的头文件时,它出错了。 – David 2012-07-19 14:59:53

相关问题