美文网首页
Windows MinGW-w64编译安装FLTK 1.3.5

Windows MinGW-w64编译安装FLTK 1.3.5

作者: Ioixy | 来源:发表于2019-03-19 18:34 被阅读0次

    简介

    FLTK(Fast Light ToolKit)是一个轻量级C++图形界面库,可以创建简单的GUI程序。C++之父Stroustrup在他的书 C++程序设计:原理与实践 中就是使用的FLTK作为界面库创建图形界面程序。相比于Qt等大型库,FLTK最大的优点就是轻量级,不需要动辄上G的安装包,打包出来的程序运行速度快、体积小。缺点一是功能不是那么丰富,没有“拖控件”这样的操作;二是对Windows系统极其不友好,能安装上简直可以烧高香。

    有一种走捷径的方式,就是用微软的Visual Studio。这货体积庞大,功能丰富,使用难度也比较高。书中给的指南就是用VS的。其实VS的项目管理还是相当不错的,做大项目十分适合,缺点是打开速度慢,占用空间大,操作比较复杂。用VS编译FLTK后,以后VS建立项目时可以链接到第三方库,编译运行还是可以过的。但是想想要是以后写个HelloWorld都要开VS,设置项目第三方库,一系列乱七八糟配置,emmm遂决定不用VS。(VS那么大要是都忍了,再加个Qt又何妨?)

    我自己的开发环境一直是MinGW-w64 + VS code,开发体验相当棒,不想再切换了。FLTK的官方文档给Windows系统留了两条路:一是老老实实装VS,二是装个能模拟Linux环境的,比如Cygwin和MSYS。MSYS我试了下,装完键入pacman -Syu就卡死再也动不了了,遂弃(至今不知原因)开始折腾MinGW装库。

    经历了前前后后几个月(当然不是连续的)的折腾,终于误打误撞的(划掉)假装成功安装了FLTK(不知道以后会不会出问题)。无奈这个库实在太小众,资料十分不全面,官方文档关于安装也语焉不详,很多东西要自己摸索。

    FLTK Demo运行图

    废话了这么多,下面进入主题。

    众所周知(不知道也没关系),Linux下安装C++库只要素质三连:

    ./configure
    make
    make install
    

    但是在Windows下,C++第三方库的管理是极其麻烦的,分分钟让人想骂娘。在开始之前,请确认做好以下准备:

    • Windows系统,推荐Windows 10
    • MinGW-w64,版本不要太老
    • Git,装Git是为了使用Git自带的Git Bash。Bash的环境比起Windows的Command命令行还是好很多的(反正我在cmd下没成功过)powershell更强,但那个我不会用
    • VS code,或者其他的文本编辑器(Vim啦,Sublime啦,等等)
    • FLTK 1.3.5源码,可从官网下载tar.gz格式的,可用tar -xzv或者7zip解压
    • 想好一个放第三方库文件的位置。不建议直接放到mingw64\下面,以后万一要卸载、重新编译之类的,会很麻烦。我这里用的是C:\Users\me\src\local,其他不包含空格和中文的目录也可以,下面用%LIB_ROOT%指代这个目录。

    安装

    环境变量配置

    最好不要修改“系统的环境变量”,而是修改“用户的环境变量”,除非你知道你在做什么。

    环境变量 说明
    Path 在原有的环境变量基础上增加以下路径:%LIB_ROOT%\bin,%MINGW%\bin,后者目录下有个g++.exe
    LIBRARY_PATH 添加变量,路径%LIB_PATH%\lib
    C_INCLUDE_PATH 添加变量,路径%LIB_PATH%\include
    CPLUS_INCLUDE_PATH 添加变量,路径%LIB_PATH%\include

    后面那几个环境变量MinGW会引用,注意别把名字输错了。

    你可能需要重启电脑以使环境变量的修改生效。

    编译源码

    把源码文件夹复制到一个不包含空格的目录下,打开文件夹,右击空白处打开git bash。然后输入:

    ./configure --prefix=/c/Users/me/src/local
    

    (其实我一开始用的是./configure --prefix=C:\\Users\\me\\src\\local,搞得后面还要用查找来改名,把名字都改成Linux格式……作死)

    等待配置。多说一句,这里的配置是针对你的编译器优化的,比如VS的V
    C编译器和GCC通常需要的库就不一样。配置完成后输入

    mingw32-make
    

    开始编译。这里编译完之后,你可以试试直接键入

    mingw32-make install
    

    然后看着它报错……这里我也不懂为什么。强制让它忽略错误安装:

    mingw32-make install --ignore-error
    

    一切顺利的话,你会在你的目录下看到bin, include, lib三个文件夹。其中bin是工具(等下会用到),include里面是头文件,lib里面是静态链接库。

    运行第一个FLTK程序

    从官方示例抄的代码:新建一个文件hello.cpp,输入以下代码

    #include <FL/Fl.H>
    #include <FL/Fl_Window.H>
    #include <FL/Fl_Box.H>
    
    int main(int argc, char **argv)
    {
      Fl_Window *window = new Fl_Window(340, 180);
      Fl_Box *box = new Fl_Box(20, 40, 300, 100, "Hello, World!");
      box->box(FL_UP_BOX);
      box->labelfont(FL_BOLD + FL_ITALIC);
      box->labelsize(36);
      box->labeltype(FL_SHADOW_LABEL);
      window->end();
      window->show(argc, argv);
      return Fl::run();
    }
    

    保存。且慢!你也许想用g++ hello.cpp -o hello来编译它,如果你这样做,将会得到一串错误提示。你必须链接FLTK的库,用到g++的一些链接参数。正确的做法是:回车执行以下命令

    fltk-config --compile hello.cpp
    

    如果以上一切正常,你就能看到一开始的那个小窗口了。以上步骤对我的机器适用,不保证在所有人的机器上都适用。

    关于fltk-config的更多用法,给一个官网链接:FLTK Compiling

    相关文章

      网友评论

          本文标题:Windows MinGW-w64编译安装FLTK 1.3.5

          本文链接:https://www.haomeiwen.com/subject/jbsgmqtx.html