本文参考了CAD大神潇湘散人的Gmsh编译博客:使用VS2015编译gmsh4.8 with opencascade7.4,并用gmsh.lib创建简单工程测试网格_XXM的博客-CSDN博客在编译过程中遇到了一些其他问题,并最终解决,成功编译。

1.下载Gmsh4.8.0:Index of /src

2.打开CMake,选择下载并解压的源码文件夹,要保存编译文件的文件夹。

点击Configure,选择VS2015和x64平台。

3. 等待Configure完成,选择所需的功能(以ENABLE_开头)。此处我用于与OCC对接,为OCC数据提供离散化功能,所以我参照了潇湘散人大神的配置,勾选了以下功能(直接搬的图):

因为要在自己的程序中调用Gmsh的函数,所以除了上述功能外,我还勾选了ENABLE_BUILD_LIB和ENABLE_BUILD_DYNAMIC用于生成lib和dll文件

在列表中搜索OCC,可以发现OCC_INC默认并没有找到所需的文件,此处设置为OCC的包含目录。

4.再次点击Configure,发现找不到OCC的lib文件。如果忽略这个问题直接Generate,最后生成gmsh的dll和lib文件后,在调用其方法时会出现错误:“Error:Gmsh requires OpenCASCADE to import shape”。所以需要配置OCC的lib文件的位置。

5.打开gmsh源码目录,打开CMakeLists.txt文件。

找到“find_library(OCC_LIB ...”这一行,修改“ENV CASROOT PATH_SUFFIXES”为自己系统中OCC lib文件夹目录路径

6.修改完之后,回到CMake,再次点击Configure,发现可以找到OCC了

7.点击Generate后,打开编译目录,打开gmsh项目。

点击重新生成解决方案。

发现成功2个,失败3个....往上翻一翻输出,发现“节数超过对象文件格式限制”的错误。

依次打开gmsh、lib、shared三个项目的属性页,找到配置属性》》C/C++》》命令行,添加/bigobj,点击确定

再次点击重新生成解决方案,发现成功重新生成了。

8.打开编译目录下的Debug目录,发现已经生成所需的dll与lib文件了。

9.复制文件并粘贴到自建项目的x64/Debug目录下。

10.打开自建项目,配置包含目录和库目录,包含目录设置为“gmsh源码目录\api”,库目录设置为“gmsh编译目录\Debug”。链接器》》输入》》附加依赖项,添加gmsh.lib。

11.设置测试函数,我还没去研究gmsh相关功能,所以此处copy了潇湘散人大神的代码。设置文件路径时,务必注意,路径必须为全英文。

#include <iostream>
#include <gmsh.h>
using namespace std;
using namespace gmsh;void GenerateMesh(const string filename) {double lc = 1;initialize();option::setNumber("General.Terminal", 1);option::setNumber("General.Verbosity", 99);option::setNumber("Mesh.Algorithm", 1);option::setNumber("Mesh.Algorithm3D", 1);option::setNumber("Mesh.MinimumCirclePoints", 15);option::setNumber("Mesh.MeshSizeMax", 5);std::vector<std::pair<int, int>> dimTags;model::occ::importShapes(filename, dimTags);model::occ::synchronize();model::mesh::setSize(dimTags, 1);model::mesh::generate(3);model::mesh::recombine();gmsh::write("D:\\CADModel\\GmshTest.stl");gmsh::finalize();}int main()
{//路径上不能有中文GenerateMesh("D:\\CADModel\\Box.step");system("pause");return 0;
}

12.运行程序,发现生成了stl文件,打开文件。。。效果有点不堪入目,等后期学习之后调参吧。

编译Gmsh,生成dll和lib文件,在自建程序中使用Gmsh函数相关推荐

  1. Qt 编译动态库只生成dll没有lib文件

    背景描述: 库A开发最初是以静态库形式存在,随着时间推移项目功能逐渐增多,涉及库A的内容也增多.组内成员开发各有习惯,QtCreator和VS2015未作限制. 现象: VS2015编辑器下正常编译和 ...

  2. windos下编译ffmpeg生成dll、lib库(开启265)

    编译环境Win 64位+MSYS2 一.安装MSYS2 1.下载msys.exe,https://www.msys2.org/ 2.安装msys 3.运行msys并执行命令pacman -Syu,一律 ...

  3. C++:通过多态实现接口并生成dll和lib文件的小例子

    1.接口声明头文件 首先声明一个形状基类,然后是三个派生类三角形.长方形和圆形. 基类中只有一个函数,getArea()输出面积 三个派生类分别对getArea()重载,分别有各自的构造函数 派生类的 ...

  4. .dll与.lib文件的区别

    文章转载于https://www.cnblogs.com/zkwarrior/p/10948174.html 共有两种库: 一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由 ...

  5. c++中.dll与.lib文件的生成与使用的详解

    c++中.dll与.lib文件的生成与使用的详解 --------------------------------------------------------------------------- ...

  6. 一分钟详解VS中快速生成dll和lib方法

    视觉IMAX的第43篇文章 问题:如果我们在Visual Studio工程中,想要快速学习如何生成dll和lib,有什么小技巧呢? 方法:在VS工程中添加新项目,操作具体方法如图1.图2所示. 经过上 ...

  7. 怎么创建dllwenjian_如何创建和使用dll及lib文件

    Abstract 如何在VC9环境下创建和使用dll及lib文件,但不用MFC. 一.创建dll 参见文章[zz]lib和dll文件的区别和联系.用方法一,在VC9下测试通过. 创建一个Dynamic ...

  8. 由dll导出lib文件

    老生长谈的问题了,网上的教程也很多,这里以实际例子作个备份,并说明下注意点. 只有dll文件(my.test.dll)和头文件,没有lib文件,需要导出lib,静态编译进代码中,用VS自带的dumpb ...

  9. c 调用java的dll_Windows下java调用c的dll动态库--Dev_Cpp编译c生成dll

    1.eclipse下建立一个HelloJNI.java内容如下: package JNI; public class HelloJNI { static { System.out.println(&q ...

最新文章

  1. 考研总结以及假期规划
  2. 基于图的异常检测(三):GraphRAD
  3. 深层学习:心智如何超越经验2.3 解释变化
  4. java 验证码 源码_java 验证码生成源码
  5. LINQ to Entities 不识别方法“System.String ToString() 的解决方法
  6. html5登录界面源代码_最新版本尤娜博客已更新源代码(速拿!!!)
  7. css 不规则边角_如何实现带有边角的CSS边框
  8. vue中既可以选择又可以手动输入的文本框类型_在PPT中制作一个胖乎乎的可爱圆环图...
  9. chosen jquery ajax搜索,基于chosen插件实现人员选择树搜索自动筛选功能
  10. Google 开源 iOS 应用测试工具:EarlGrey
  11. c3p0连接池配置说明
  12. 【Excel技巧必知必会】
  13. python攻击校园网_Python模拟校园网登录
  14. RTT Nano学习笔记 8 - 信号量
  15. 定时跑视图往另外一张表添加数据_聊一聊数据库中的锁
  16. 今日头条是怎么挣钱的
  17. 【mcuclub】模数转换ADC0832
  18. 服务器组装 华硕主板,华硕主板装机教程 华硕主板装机步骤
  19. 基于单片机的危险气体泄露报警器设计
  20. 揭秘!阿里巴巴基于Transformer的推荐系统

热门文章

  1. 外贸ERP有什么用?
  2. Advanced Installer打包msi文件操作流程
  3. 取消windowsXP桌面图标下的蓝色阴影
  4. 48条高效率的PHP优化写法-大家批判的吸收
  5. ENIGMA的兴亡(一)
  6. JPG文件头结构介绍
  7. 案例分享:医疗流式细胞术数据文件(.fcs)导出excel表工具
  8. 热门项目排行榜 TOP 50
  9. Spring框架知识点总结
  10. CAD 快捷键Ctrl+2 Ctrl+3