Windows下使用VS2017搭建FLTK開發環境

環境介紹

系統:win10 64位windows

IDE:VS 2017 Communityide

FLTK版本:1.3.4-2測試

下載FLTK

截止到本文編寫,FLTK的最新穩定版本是1.3.4-2。咱們從官網(www.fltk.org)下載到它的源碼包。以下圖:字體

我把它解壓到D:\FLTK目錄下:編碼

 編譯FLTK

 FLTK是跨平臺的C++ GUI庫,以源代碼形式發佈,所以在使用前須要編譯。FLTK官方推薦在Windows系統下,將FLTK編譯成靜態連接庫的形式使用。在解壓後的目錄下找到:ide目錄,裏面提供了預先配置好的VS和Xcode項目。spa

在README文件中發現以下內容:插件

ide/VisualC6         Microsoft Visual C++ 6 and 2005 (2)
ide/VisualC2008   Microsoft Visual C++ 2008
ide/VisualC2010   Microsoft Visual C++ 2010 and later (3)
ide/Xcode4           Apple Xcode 3.x and up (see ../README.OSX.txt)命令行

 所以咱們選擇VisualC2010目錄,並雙擊裏面的 「fltk.sln」 就能夠用VS2017打開解決方案。打開時會彈出以下窗口,意思是將項目更新到最新的VS兼容版本,點擊確認便可。debug

 

打開解決方案後,在左邊的項目列表中找到demo項目,右鍵之,選擇【設爲啓動項目】,以下圖:3d

 

將項目配置爲Debug模式下的Win32開發平臺(默認就是這樣,通常無需改動)

 

按【F7】或者點擊菜單欄的【生成】->【生成解決方案】開始編譯,大約3~5分鐘就好。

一切順利會獲得以下圖的編譯輸出信息

而後將Debug切換爲Release,其它不變,再重新生成解決方案。 一切順利後,咱們【Ctrl + F5】運行demo項目,會看到一個官方的演示程序(注:Debug模式運行會帶一個命令行窗口,Release模式則不帶)。以下圖:

 

配置開發環境

如今咱們能夠關閉VS2017了。

前面2次生成解決方案會編譯造成14個.lib後綴的靜態庫文件,他們位於FLTK的lib目錄下。文件名稱以d結尾的表示是debug模式下編譯造成的,不帶d的則是release模式下造成的,例如fltkd.lib和fltk.lib。

 

打開VS2017的VC++ 目錄,個人機器上是:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023

 

第一步:將14個.lib文件拷貝到上圖VC++的lib目錄下的x86目錄下。拷貝後以下圖:

第二步:將FLTK目錄下的FL文件夾拷貝VC++的的include目錄下。拷貝後以下圖:

 

 

新建一個FLTK應用程序

使用VS2017新建一個VC++空項目名爲hello,以下圖:

 向項目中添加一個main.cpp源文件,使用下面的測試代碼。

#include <FL/Fl.H> #include <FL/Fl_Window.H> #include <FL/Fl_Box.H>
int  main(int argc, char *argv[]) { Fl_Window *window; Fl_Box *box; window = new  Fl_Window(450, 330, "First App!"); box = new Fl_Box(20, 40, 360, 200, "Hello World,世界你好"); box->box(FL_FLAT_BOX); box->labelsize(36);                   //設置字體大小
        box->labelfont(FL_BOLD + FL_ITALIC);  //設置字體
        box->labeltype(FL_SHADOW_LABEL);      //設置label的類型
    window->end(); window->show(argc, argv); return Fl::run(); }

 

先不急着運行,要對項目進行以下2部分配置。右鍵項目名【hello】->【屬性】能夠打開下面的配置窗口。

 下圖演示了對項目的Debug模式進行配置的細節。當要發佈程序的release版本時,一樣須要對Release模式進行配置再編譯。兩者的區別在於,【附加依賴項】中,輸入的lib靜態庫不一樣,Debug模式使用名稱帶d的庫,Release模式則使用不帶d的庫。

 

FLTK源代碼中,會根據平臺相關宏來進行條件編譯,從而實現跨平臺的特性,Windows平臺對應的宏就是WIN32,所以咱們須要預約義這個宏。

添加依賴庫。Comctl32.lib是必須的,而後就是FLTK相關的靜態庫。FLTK相關的靜態庫有7對,應用程序使用了某些功能,就添加對應的FLTK靜態庫,fltkd.lib(Release模式下是fltk.lib)是必須的。

 

 

運行效果:

 

爲何程序老是帶命令行窗口?

windows系統下,能夠設置一個程序對應的console運行於前臺仍是後臺。若是你使用的是gcc(例如MingW,或者Cygwin),那麼你經過使用連接器參數 "-mwindows" 來讓console運行在後臺(隱藏命令行窗口),使用"-mconsole"讓console運行在前臺(顯示命令行窗口)。若是你使用MS VC++編譯器,那麼你經過設置鏈接器的選項來設置程序是一個Window程序或者是Console程序。
提示:我發現這個配置只對Release模式起做用,固然Debug帶console也是有好處的,那就是咱們能夠在程序中使用printf或者std::cout來打印代碼的調試信息。
/subsystem:windows /subsystem:console

 

爲何中文亂碼?

FLTK 1.3.4是支持UTF-8編碼的。若是出現了中文亂碼狀況,經過將源代碼文件轉變爲UTF-8編碼格式可能會解決。

這裏推薦一個VS插件,能夠強制新建的文件都以UTF-8編碼方式編碼。

相關文章
相關標籤/搜索