以下内容是基于ubuntu22.04.4 LTS编写的。
1. FLTK-1.3.9源码编译
- 前往FLTK官网下载FLTK-1.3.9源码
- 切换到下载目录,解压下载文件,进入源码目录
tar -zxvf fltk-1.3.9-source.tar.gz > /dev/null
cd fltk-1.3.9/
- 安装编译工具和依赖
sudo apt install build-essential cmake libx11-dev
- 编译源码
mkdir build
cd build
cmake ..
make
- 构建FLTK库
- 创建FLTK构建目录并切换到该目录
mkdir ~/Downloads/fltk-1.3.9-build
cd ~/Downloads/fltk-1.3.9-build
- 复制编译好的库目录到构建目录
cp -r ../fltk-1.3.9/build/lib .
- 创建头文件目录
mkdir include
- 复制头文件目录到构建目录
cp -r ../fltk-1.3.9/FL include/
- 复制
abi-version.h
到构建目录的头文件目录
cp ../fltk-1.3.9/build/FL/abi-version.h include/FL/
- 至此FLTK GUI库已经构建完成,只需将
fltk-1.3.9-build
目录复制到项目目录下,写好CMakeLists.txt就可以直接使用。fltk-1.3.9-build
目录结构如下:fltk-1.3.9-build ├── include │ └── FL │ ├── abi-version.h │ ... └── lib ├── libfltk.a ...
2. FLTK-1.3.9的基本使用
- 创建一个项目目录,将
fltk-1.3.9-build
目录复制到项目目录下# 假定当前位于项目目录 cp -r ~/Downloads/fltk-1.3.9-build .
- 在项目目录下创建并编辑
HelloWorld.cpp
文件内容为:vim HelloWorld.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(); }
- 在项目目录下创建并编辑
CMakeLists.txt
文件内容为:vim CMakeLists.txt
cmake_minimum_required(VERSION 3.20) project(HelloWorld) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/fltk-1.3.9-build/include) link_directories(${CMAKE_CURRENT_SOURCE_DIR}/fltk-1.3.9-build/lib) add_executable(${PROJECT_NAME} HelloWorld.cpp) target_link_libraries(${PROJECT_NAME} PRIVATE fltk X11)
- 构建项目
mkdir build & cd build
cmake .. & make
- 运行程序
./HelloWorld