VS安装FLTK图形库报错问题及解决方案-WIN7

一、安装FLTK:

        1、下载:  官网:http://fltk.org/pub/fltk/1.3.4/fltk-1.3.4-2-source.tar.gz (版本:1.3.4)。

        2、安装:

                     解压文件:不要解压到桌面(用完不能删),最好跟VS放到一起,比如我的解压的地址:

                     解压之后打开fltk-1.3.4-2——ide——VisualC2010——fltk.sln

                    提示升级,点确定即可,等待几分钟后 ,更新完成,点击VS上方菜单栏中的生成——生成解决方案,坐等生成完毕。(若提示安装Windows 8.1 SDK 请看文章结尾附录)。

 生成完毕后,我们将fltk-1.3.4-2——lib中的全部文件复制(鼠标右键点复制,别拖动)到VS的lib文件夹中,

一般路径为:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\lib。

再将fltk-1.3.4-2——FL文件夹(注意是直接复制文件夹)到VS的include文件夹中

一般路径为:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include。

二、使用FLTK

       1、使用vs创建一个空项目(方便叙述,这里假设项目名称为Test,然后添加源文件(源.cpp)。

       2、右键项目打开下拉菜单——属性

        3、配置属性——链接器——输入——点击附加依赖项右方下拉菜单——编辑

      4、在文本框中输入以下数据,然后点击确定,再在“忽略特定默认库”中输入   libcd.lib

fltkd.lib
wsock32.lib
comctl32.lib
fltkjpegd.lib
fltkimagesd.lib

    5、至此,我们已经完成了常规的安装操作,用以下的代码测试FLTK是否正常工作。

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>

int main(int argc, char **argv) {
	Fl_Window win(200, 200, "MyFLTK");
	Fl_Box box(0, 0, 200, 200, "Hello boy");
	win.show();
	return Fl::run();
}

   如果出现这个窗口,说明我们已经成功了,但如果提示无法打开X11/Xlib之类的问题,需要单独下载Xlib库

报错:无法打开X11/Xlib.....解决方案:

方案一:大佬跟我说这是由于VS的配置问题

          右键项目——属性——C/C++——预处理器——预处理器定义:结尾输入  WIN32   (注意用:分隔)

方案二:

            下载X11-方式:1、官方:https://www.x.org/wiki/Releases/Download/(英语特别好的话可以进去下载)。

                                     2、我的X11文件夹:https://pan.baidu.com/s/1MIH86IbAEpR58j2MSI4VKg

            把解压好的X11文件夹放到VS的include文件夹中

            一般路径:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include

报错:winnt.h.....语法错误解决方案:

              需要安装windows 8.1 SDK,安装方法看文章结尾附录。

              以及Windows不明确,安装windows 8.1 SDK后仍无法解决可以使用我的GUI工具包。

三、安装GUI工具包(各类报错解决方案)

安装方式:

1、到本书支持网站:http://www.stroustrup.com/Programming/PPP2code/

     进去你会发现是源码,这里我们需要自己在该项目中添加源文件(.cpp)和头文件(.h),按照名称创建文件,把网站上的源码复制进去就行。以下是我们需要添加的文件(必须全部添加,否则提示无法解析的外部符号):

   

2.(如果上方的代码你也报错,实在找不到解决方法,再看这里)我在使用这些文件的时候仍然出了很多错误,自己瞎改了一通,现在可以运行了,你可以用我的这些文件试试。

    注意:1、Window不明确,导致无法确定,我把GUI中的一个Window类重命名为Windows,如果之后用到请注意!

               2、无法从ifstream转为bool,把报错语句改为 return (bool)ff;

               3、Point类中被注释掉的几行被我恢复了,不然无法构造。

              4、重定义:不知道是不是作者的疏忽,我发现Simple_window.cpp和Simple_window.h中的代码高度相似(我对这方面也不太懂,不能判断对错,只能通过平时的语法解决),我的解决方法是不添加Simple_window.cpp,这样做可以运行,所以在我的GUI包中没有Simple_window.cpp。

我的GUI:https://pan.baidu.com/s/1SKc0Cow8vesMHvRC17-RHg

    下载后将文件解压,把文件夹里的全部文件复制到该项目的项目目录里(右键项目打开下拉菜单——在文件资源管理器中打开文件夹),然后把这些头文件和源文件添加进去即可(右键头(源)文件——添加——现有项)。

然后应该就能解决问题了吧,用以下代码进行测试,看是否能运行。

#include "Simple_window.h"    
#include "Graph.h"
int main(){
	using namespace Graph_lib;   
	Point tl(100, 100);           
	Simple_window win(tl, 600, 400, "Hello boy");   
	Graph_lib::Polygon poly;
	poly.add(Point(300, 200));    
	poly.add(Point(350, 100));   
	poly.add(Point(400, 200));    
	poly.set_color(Color::blue); 
	win.attach(poly);          
	win.wait_for_button();      
}

附录:安装windows 8.1 SDK 

可以直接在VS2017的安装程序中进行修改安装

安装程序的一般路径:

打开后点击修改 ,打开如下界面

PS:如果哪一步没看懂或者还存在问题,可以在评论区告诉我,我尽量帮你。

猜你喜欢

转载自blog.csdn.net/qq_40946921/article/details/81610205