本文主要讲解如何利用cmake进行配置带图形界面的gmsh,因为gmsh给出的qt范例只有简单的显示功能,而对 fltk中编写了较完整的功能,所以利用fltk进行说明,如需qt可参考链接。本文使用的编译器是vs2019
首先为了编译成功gmsh软件,我们需要先编译fltk,再编译gmsh。
我的编译环境:vs2019 professional+fltk1.3.5+gmsh

编译fltk

先下载fltk,解压,新建目录build,打开cmake,进行如下配置,配置好source code和build 目录,点击configure,修改CMAKE_INSTALL_PREFIX,然后点击generate,然后点击open project,如果你是初次使用cmake,选择你想使用的编译器即可。

再vs2019内打开该项目后,点击本地调试器,所有项目生成成功后,在解决方案资源管理器中,选择INSTALL项目,右键选择生成,即在指定的CMAKE_INSTALL_PREFIX目录安装了fltk,在该目录下可以看到如下文件:

编译gmsh

下载gmsh源码解压,同样配置好source code和build安装目录,然后点击add_entry,添加如下的entry,这一步是为gmsh中指定fltk依赖路径,Value就是刚才fltk的安装目录.

然后点击configure,出现错误:

修改gmsh源码路径下的cmakelist.txt文件,修改495行为: #enable_language(Fortran)
再次点击configure,没有错误后,点击generate,生成成功后,点击open project
在vs内运行该项目,出现大量类似错误:
error C7555: 使用指定的初始值设定项至少需要“/std:c++latest”
发现出错原因均来自gmsh soruce code下的contrib/hxt,先移除hxt文件夹。
再次点击configure,generate,运行该项目,成功运行出图形界面。

其它小伙伴尝试发现的错误

在编译gmsh的时候,出现如下错误:


他们的解决方案都是手动添加fltk的静态链接路径:(路径在刚刚编译好的fltk目录下)


谢谢以上两位小伙伴的帮助!!!

其它注意点

  1. 由于gmsh源码目录下有tutorial,该目录下有t1.cpp,利用cmake进行编译时,也会生成t1.sln
    但是在运行时会出现错误,如:
    MSVCRT.lib(exe_winmain.obj) : error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 "int __cdecl __scrt_common_main_seh(void)" (?__sc
    rt_common_main_seh@@YAHXZ) 中被引用
    出现原因是t1.cpp是控制台程序,入口函数是main,而vs编译器默认windows程序,入口函数为WinMain,在解决方案资源管理器中,选中t1,t1…x1项目,右键项目属性,在链接器–>系统–>选择subsystem :console即可
  2. fltk自带opengl支持 ,但如果编译时提示说不支持opengl,在项目-链接器—输入—附加依赖项:添加OpenGL32.lib 和 glut32.lib

gmsh+fltk配置过程相关推荐

  1. cartographer 配置过程

    cartographer 配置过程 1. 安装 系统配置: ubuntu16.04 ROS Kinetic Intel® Core™ i7-9700K CPU @ 3.60GHz × 8 64位操作系 ...

  2. MySQL主从复制配置过程(双主双从模式)

    环境准备 为了搭建MySQL数据库主从复制(双主双从模式),准备一下四台服务器,并明确了各节点的角色及IP地址. 角色 IP地址 节点名称 Master1 192.168.67.140 CentOS0 ...

  3. MySQL主从复制配置过程(一主一从模式)

    1.概述 MySQL 的主从复制又叫 Replication.AB 复制.至少需要两个 MySQL 服务(可以是同一台机器,也可以是不同机器之间进行). 比如A服务器做主服务器,B服务器做从服务器,在 ...

  4. Centos7安装Apache和PHP,包含配置过程

    本文主要讲的是本人在迁移php网站相关软件的安装和配置过程,以及一下问题的解决步骤.通过阅读本文能够知道如何迁移php网站,如何配置httpd服务使得它能够解析php文件以及如何解决迁移过程中的异常问 ...

  5. Apache+PHP配置过程详解

    Apache+PHP配置过程详解 经过两晚上的奋斗终于将Apache配置PHP成功,安装配置过程中走了不少弯路,特记录之. 1.Apache配置PHP个人认为首先要注意的是Apache和PHP的版本信 ...

  6. linux下 DNS配置过程『罗斌原创』

    DNS配置过程 任务1:配置主DNS 1.检查是否安装了bind软件包,rpm -qa | grep bind 如果没有安装则挂载第四张光盘, mount -t iso9660 /dev/cdrom ...

  7. 【有图有真相】静态NAT、动态NAT、PAT、端口映射的详细配置过程

    实验要求:使用宿主机利用NAT地址转换技术访问虚拟机的Web80端口.全是***实弹的操作步骤. 实验前提:开启server 2008虚拟机并且搭建一个简单web服务.打开GNS3连接拓扑图的线路,一 ...

  8. FPGA的配置引脚以及配置过程

    FPGA配置基本介绍 与CPLD不同,FPGA是基于门阵列方式为用户提供可编程资源的,其内部逻辑结构的形成是由配置数据决定的.FPGA的配置方式分为主动式和被动式. 1配置引脚 FPGA的配置引脚可分 ...

  9. Altera FPGA配置过程

    在FPGA正常工作时,配置数据存储在SRAM中,这个SRAM单元也被称为配置存储器(configure RAM).由于SRAM是易失性存储器,因此在FPGA上电之后,外部电路需要将配置数据重新载入到芯 ...

最新文章

  1. 服务器自动post,jquery ajax $.post自动变GET的解决方式(for CI)
  2. 表示层 业务逻辑层 数据层(UI BLL DAL)
  3. 项目实战---模拟亿邦动力网
  4. linux下vim编辑器快速掌握方法
  5. 泰坦尼克号数据_数据分析-泰坦尼克号乘客生存率预测
  6. lcd液晶字体_等离子电视与液晶电视的区别
  7. 深度学习 --- 优化入门四(Batch Normalization(批量归一化)一)
  8. c++程序设计原理与实践 第二十四章部分答案
  9. js base64编码_使用psd.js将PSD转成SVG -- 基础篇(文字amp;图片)
  10. 旷视科技 CSG 算法负责人姚聪:深度学习时代的文字检测与识别技术 | AI 研习社 103 期大讲堂...
  11. 用layoutit框架写的Bootstrap首页
  12. Spring学习的书-夏昕(3)
  13. python文件写入乱码_python2写入文件乱码怎么解决?
  14. 0x00F749F6 处(位于 基于多态实现职工管理系统.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000004 时发生访问冲突。
  15. html网页无刷新数据更新,使用javascript怎么实现页面无刷新更新数据
  16. 10个BS后台UI框架
  17. 消金主流市场外的灰色地带:vivo应用商店聚集大量“伪现金贷平台”
  18. 基于CTP的国内期货程序化交易之行情获取讲解
  19. 计算机网络基础心得体会结尾,学习《计算机网络基础知识》心得体会
  20. idea根据路径找控制器的插件(推荐)

热门文章

  1. Mybatis查询的时间数据中包含T
  2. 基于Web的小型购书网站
  3. 【转载】思科CISCO防火墙ASA5510重置密码
  4. 频谱仪 网口LAN 数据导出
  5. 【稀饭】react native 实战系列教程之首页列表UI实现
  6. 《职来职往》那些话~~~我承认,他们懂得比我多……
  7. 渗透测试神器AWVS使用教程
  8. 战“疫”进行时,企业远程办公指南
  9. 第一次机房收费系统总结
  10. 问道打开时显示连接服务器失败怎么办,荒野行动连接不上服务器怎么办 服务器连接失败解决-游侠手游...