当前位置: 首页 > news >正文

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 创建构建目录

  1. 在 FLTK 源码根目录下新建一个名为 build 的文件夹
  2. 打开 CMake GUI 工具
  3. 配置源码目录为 FLTK 源码根目录,构建目录为刚刚创建的 build 文件夹

2.2 配置编译环境

  1. 点击 “Configure” 按钮
  2. 选择 Visual Studio 2022(版本 17)作为生成器,平台选择 x64
  3. 等待初始配置完成后(界面变红),再次点击 “Configure”
  4. 配置完成后点击 “Generate”,生成 Visual Studio 项目文件

2.3 编译与安装

  1. 打开生成的 FLTK.sln 解决方案文件(位于 build 目录下)
  2. 使用管理员权限运行 Visual Studio 2022
  3. 分别在 Debug X64Release X64 配置下进行编译
  4. 编译完成后找到 INSTALL 项目,右键选择 “重建”
  5. 头文件和库文件将被安装到 C:\Program Files\FLTK 目录

三、编译 Gmsh 4.13.1

3.1 初始配置

  1. 在 Gmsh 源码根目录下新建 build 文件夹
  2. 打开 CMake GUI,设置源码目录为 Gmsh 源码根目录,构建目录为 build
  3. 点击 “Configure”,选择 Visual Studio 2022(版本 17),平台 x64

3.2 解决配置错误

  1. 初始配置可能出现版本错误,需修改源码根目录下的 CMakeLists.txt
  2. 将以下语句:
    cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
    
    修改为:
    cmake_minimum_required(VERSION 3.5)
    
  3. 保存修改后再次点击 “Configure”

3.3 指定 FLTK 依赖路径

  1. 在 CMake GUI 中点击 “Add Entry”
  2. 添加如下条目,指定 FLTK 的安装路径(即之前安装 FLTK 的目录):
    • 名称:CMAKE_PREFIX_PATH
    • 值:C:/Program Files/FLTK
    • 类型:PATH

  1. 添加完成后再次点击 “Configure”,确保无错误

3.4 配置链接库选项

  1. 在 CMake GUI 的搜索栏输入 “enable”,查找链接库配置选项
  2. 确保只勾选以下必要选项:

  1. 点击 “Configure” 确认配置

3.5 编译生成项目

  1. 配置完成后点击 “Generate”,生成 Visual Studio 项目文件
  2. 打开生成的解决方案文件
  3. 分别在 Debug X64Release X64 配置下进行编译
  4. 编译成功后将生成相应的库文件

四、测试编译结果

4.1 创建测试项目

  1. 新建一个空白的 Visual Studio C++ 工程
  2. 配置项目属性:
    • C/C++ -> 常规 -> 附加包含目录:
      D:\gmsh-4.13.1-source\gmsh-4.13.1-source\api
      

  • 链接器 -> 常规 -> 附加库目录:
    • Debug 配置:
      D:\gmsh-4.13.1-source\build\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 运行测试

  1. 编译并运行测试项目
  2. 成功运行后将打印以下信息:
    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 的网格生成和计算应用。

http://www.xdnf.cn/news/420319.html

相关文章:

  • visual studio生成动态库DLL
  • IntelliJ IDEA给Controller、Service、Mapper不同文件设置不同的文件头注释模板、Velocity模板引擎
  • spring中的@SpringBootApplication注解详解
  • 5.13本日总结
  • Web 架构之负载均衡会话保持
  • 基于C#+SQL Server开发(WinForm)租房管理系统
  • 【C++】MSYS2:构建 C++ 开发环境
  • (vue)el-steps从别的页面跳转进来怎么实现和点击同样效果
  • day011-12-老男孩教育-用户管理与软件管理体系-习题
  • 18.Excel数据透视表:第1部分创建数据透视表
  • 2025java面试题整理
  • WebRTC技术EasyRTC嵌入式音视频通信SDK打造远程实时视频通话监控巡检解决方案
  • LabVIEW与PLC通讯程序S7.Net.dll
  • 国联股份卫多多与七腾机器人签署战略合作协议
  • 动态域名服务ddns怎么设置?如何使用路由器动态域名解析让外网访问内网?
  • 5.11作业
  • 5月12日作业
  • 文件同步2
  • 人事管理系统总结
  • 你对于JVM底层的理解
  • IBM BAW(原BPM升级版)使用教程第十四讲
  • 利用Backtrader实现回测策略的可视化与图表绘制
  • SpringBoot 3.X 开发自己的 Spring Boot Starter 和 SpringBoot 2.x 的区别
  • 1.6 关于static和final的修饰符
  • Spring Boot中HTTP连接池的配置与优化实践
  • Spring Spring Boot 常用注解整理
  • 服务器租用与托管注意事项有哪些
  • Shell脚本与Xshell的使用、知识点、区别及原理
  • 框架篇八股(自用)
  • Python常用函数全解析:列表、字典、集合操作指南