Win11 + Visual Studio 2022 + FLTK 1.4.3 + Gmsh 4.13.1 源码编译指南
一、编译环境准备
本文档详细记录了在 Windows 11 系统下,使用 Visual Studio 2022(版本 17)编译 FLTK 1.4.3 和 Gmsh 4.13.1 的完整过程。目标是帮助开发者顺利完成库的编译,并实现基本的功能测试。
二、编译 FLTK 1.4.3
2.1 创建构建目录
- 在 FLTK 源码根目录下新建一个名为
build
的文件夹 - 打开 CMake GUI 工具
- 配置源码目录为 FLTK 源码根目录,构建目录为刚刚创建的
build
文件夹
2.2 配置编译环境
- 点击 “Configure” 按钮
- 选择 Visual Studio 2022(版本 17)作为生成器,平台选择
x64
- 等待初始配置完成后(界面变红),再次点击 “Configure”
- 配置完成后点击 “Generate”,生成 Visual Studio 项目文件
2.3 编译与安装
- 打开生成的
FLTK.sln
解决方案文件(位于 build 目录下) - 使用管理员权限运行 Visual Studio 2022
- 分别在
Debug X64
和Release X64
配置下进行编译 - 编译完成后找到
INSTALL
项目,右键选择 “重建” - 头文件和库文件将被安装到
C:\Program Files\FLTK
目录
三、编译 Gmsh 4.13.1
3.1 初始配置
- 在 Gmsh 源码根目录下新建
build
文件夹 - 打开 CMake GUI,设置源码目录为 Gmsh 源码根目录,构建目录为
build
- 点击 “Configure”,选择 Visual Studio 2022(版本 17),平台
x64
3.2 解决配置错误
- 初始配置可能出现版本错误,需修改源码根目录下的
CMakeLists.txt
- 将以下语句:
修改为:cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
cmake_minimum_required(VERSION 3.5)
- 保存修改后再次点击 “Configure”
3.3 指定 FLTK 依赖路径
- 在 CMake GUI 中点击 “Add Entry”
- 添加如下条目,指定 FLTK 的安装路径(即之前安装 FLTK 的目录):
- 名称:
CMAKE_PREFIX_PATH
- 值:
C:/Program Files/FLTK
- 类型:
PATH
- 名称:
- 添加完成后再次点击 “Configure”,确保无错误
3.4 配置链接库选项
- 在 CMake GUI 的搜索栏输入 “enable”,查找链接库配置选项
- 确保只勾选以下必要选项:
- 点击 “Configure” 确认配置
3.5 编译生成项目
- 配置完成后点击 “Generate”,生成 Visual Studio 项目文件
- 打开生成的解决方案文件
- 分别在
Debug X64
和Release X64
配置下进行编译 - 编译成功后将生成相应的库文件
四、测试编译结果
4.1 创建测试项目
- 新建一个空白的 Visual Studio C++ 工程
- 配置项目属性:
- C/C++ -> 常规 -> 附加包含目录:
D:\gmsh-4.13.1-source\gmsh-4.13.1-source\api
- C/C++ -> 常规 -> 附加包含目录:
- 链接器 -> 常规 -> 附加库目录:
- Debug 配置:
D:\gmsh-4.13.1-source\build\Debug
- Debug 配置:
- Release 配置:```D:\gmsh-4.13.1-source\build\Release```
- 链接器 -> 输入 -> 附加依赖项:
gmsh.lib
4.2 编写测试代码
在项目中新建 main.cpp
文件,输入以下代码:
#include <gmsh.h>int main(int argc, char** argv)
{// 初始化 gmsh 库gmsh::initialize();// 创建一个新的 gmsh 模型gmsh::model::add("example");// 创建一个正方形的边界double lc = 1.0; // 网格的特征长度gmsh::model::geo::addPoint(0, 0, 0, lc, 1);gmsh::model::geo::addPoint(1, 0, 0, lc, 2);gmsh::model::geo::addPoint(1, 1, 0, lc, 3);gmsh::model::geo::addPoint(0, 1, 0, lc, 4);gmsh::model::geo::addLine(1, 2, 1);gmsh::model::geo::addLine(2, 3, 2);gmsh::model::geo::addLine(3, 4, 3);gmsh::model::geo::addLine(4, 1, 4);gmsh::model::geo::addCurveLoop({ 1, 2, 3, 4 }, 1);gmsh::model::geo::addPlaneSurface({ 1 }, 1);// 生成网格gmsh::model::mesh::generate(2);// 将模型写入文件gmsh::write("example.msh");// 退出 gmsh 库gmsh::finalize();return 0;
}
4.3 运行测试
- 编译并运行测试项目
- 成功运行后将打印以下信息:
Info : Meshing 1D... Info : Done meshing 1D (Wall 8e-06s, CPU 0s) Info : Meshing 2D... Info : Done meshing 2D (Wall 0.0001474s, CPU 0s) Info : 0 nodes 0 elements Info : Writing 'example.msh'... Info : Done writing 'example.msh'
4.4 注意事项
如果程序提示找不到 gmsh.dll
文件,请将该文件拷贝到可执行文件(.exe)所在的目录下。文件位置通常在:
D:\gmsh-4.13.1-source\build\Debug\gmsh.dll
或
D:\gmsh-4.13.1-source\build\Release\gmsh.dll
五、总结
通过上述步骤,您已成功在 Windows 11 系统下使用 Visual Studio 2022 编译了 FLTK 1.4.3 和 Gmsh 4.13.1,并完成了基本功能测试。此环境配置可用于进一步开发基于 Gmsh 的网格生成和计算应用。