安装过程曲折,不断出bug,最终还是成功安装,遂写下此文以教后人。
【注意】此为
Debug版本的安装
1 准备工作
安装 zlib (git 下载,cmake 安装,过程很简单)
安装 occt (如果需要用到 occt 的话,这个前人都有教程)
下载 netgen 源代码:
git clone --recursive https://github.com/NGSolve/netgen.git cd netgen git submodule update --init --recursive
2 配置工作
使用 cmake,选取 安装目录 和 build 目录,点击Configure
根据自己的需求选择使用的模块,因为我不需要 netgen 的 GUI 所以我取消了 USE_GUI,这里建议取消 USE_SUPERBUILD,这个 USE_SUPERBUILD 很容易出错。需要用 OCCT 的话,USE_OCC 就保持选取即可。
CMAKE_INSTALL_PREFIX:设置安装位置CMAKE_BUILD_TYPE:Debug
点击Configure,设置 zlib 文件夹和 OCC 文件夹:
再次点击 点击
Configure,构建成功,点击Generate,再点击Open Project。
3 重点修改
debug 版本有一个关于NGCORE_API的一个 bug,需要找到 ngcore下的bitarray.hpp文件,翻到最下面有一个TBitArray,把 Or 函数签名的 宏删除,不然构建会出 error
除此之外,在 vs 2022 窗口最上方菜单栏,项目->属性->常规,修改编译 C++版本为 17:
ngcore、nglib、ngpy、pyngcore 等,只要是属性中可以看到 C/C++ -> 代码生成的,都要修改运行库,原来提供的运行库是release版本的,我们要修改为 debug 版本的:
4 收尾工作
ALL_BUILD右键生成,接着INSTALL右键生成
可以看到安装目录下面有 cmake 以及对应的 cmake 文件,说明 debug 版本安装成功。
以上是个人经验,有什么错误恳请指正。