FLTK算是比较老的一个C++GUI工具集,当然也可以用GLUT或是比较新的GLFW,但是这两者都算是相当轻量化,所以相对来说如果要设计一些GUI介面就会相对不直觉,甚至按钮、打字输入可能都要自己想办法(写过一次又丑又难用),或是挂一些lib来用,例如我有用过的nanogui。另一种就是包山包海的Qt,它提供相当直觉的GUI设计,但相对来说就是很肥,而且很多东西它都封装起来,要自己去写GL的code相对变得非常麻烦。
所以这篇就介绍FLTK,它可以自己设计GUI,也提供相对轻量的设计,至少可以自己写底层的东西。
首先,先到FLTK下载code,这边就选择1.3.5。
然后把sourcecode载下来,哪个载点原则上都可以。
载下来解压缩完应该会看到fltk-1.3.5的档案,接下来就要cmake它,这边你要有VS跟cmake。Sourcecode就写解压缩出来的那个档案,build出来的资料夹原则要在哪裡都可以。
sourcecode:…/fltk-1.3.5buildthebinaries:…/build
然后请先选择Configu。
然后跳出来的东西就依照自己的配置自己选吧,选完就按Finish
如果没有跳出甚麽错,应该会看到Configuringdone,接下来按Generate
结束应该会看到Generatingdone,接下来应该会看到build完资料夹会出现FLTK.sln,把它用VS打开,并选ALL_BUILD建置,这边看你要用Debug或是Release去建,对应到后来应用程式是用Debug或是Release,这边我全都要。
开启你要做的专案,在属性裡面连结FLTK,注意这边组态跟平台要对。
这边有三个地方要设定。
组态属性VC++目录Include目录组态属性VC++目录程式库目录组态属性连结器输入其他相依性
Include的目录是要放一开始解压缩的目录…/fltk-1.3.5跟cmake完的目录…/build,主要裡面的FL资料夹裡面的header,让专案知道相关的header可以从这两个位置找。
接下来就是要连接lib,也就是要连结到我们cmake完的.lib,这边要注意如果你用debug就要用…/lib/debug,lease就要用…/lib/lease。
最后是告诉专案有哪些额外的lib的名子,这边因为是用…/lib/debug,所以就是把该资料夹裡面的lib写进去。
如果要用Release也要用类似的设定,如果设定正确,就可以开始编了。
直接下去编可能会遇到这个问题,这边我不确定是哪的问题,图中的WIN32应该要被定义,然后include“win32.H”,但是不知道为甚麽没有被定义,所以会跑去Includewindows没有的header,这边最简单的解决方法就是把WIN32改成_WIN32,因为这个有被定义。
这样原则上就可以了跑了,以上。
这边我有编好的FLTK1.3.5(VSx64),裡面的档案都已经整理好了,Include就是所有Header,Lib就是已经编好的lib。所以只要把Include目录改成…/FLTK_1.3.5/include,程式库目录改成.../FLTK_1.3.5/lib/Debug,这样就不用自己cmake了。
Relatedlink