欢迎光临散文网 会员登陆 & 注册

vscode+msys2+cmake编译调试Fluent UDF记录

2023-04-02 23:14 作者:van德瓦尔斯  | 我要投稿

        Fluent的UDF编译调试一直以来是个比较麻烦的事,并且想要调用一些第三方动态库时,就必须要用一些编译小软件才能做到,而Fluent内并没有提供链接的方法。所以最近也是琢磨了如何使用vscode编译调试UDF,并在此将最近配置好的编译调试环境记录下来。

1. 环境准备

        本文使用的Fluent版本是2019 R3,还需要安装好[msys2](https://www.msys2.org/)和[vscode](https://code.visualstudio.com/Download)。


        a. 安装好msys2后,需要注意的是在MINGW64环境下安装mingw-w64 GCC编译工具链,顺便还可以安装好cmake工具。有关于msys2各个环境的区别可以查看[msys2文档](https://www.msys2.org/docs/environments/),目前Fluent UDF使用的C运行时库应该还是msvcrt (PS: 个人推断,待补充信息)。

        编译工具安装完成后,需要将其路径添加至系统环境变量中,例如在Path中添加C:\msys64\mingw64\bin (PS: 重启电脑以确保更新),以方便vscode的cmake插件搜索到。


        b. 安装完vscode,需要在扩展商店里安装C/C++CMakeCMake Tools等插件。


        c. 定位到Fluent目录C:\Program Files\ANSYS Inc\v195\fluent\fluent19.5.0\win64文件夹,将win64下所有文件夹先打包备份,然后对各个文件夹里的 fl1950.exe 重新生成导入库。 具体命令如下:    

        注意node结尾的文件里,是fl_mpi1950.exe,命令里需要对应改动。

        同样,定位到C:\Program Files\ANSYS Inc\v195\fluent\fluent19.5.0\multiport\win64文件夹下,打包备份。以上述方法重新生成导入库。

        对.\mpi\shared\和.\net\shared\两个文件夹下分别执行命令

 

        d.修改C:\Program Files\ANSYS Inc\v195\fluent\fluent19.5.0\cortex\src\cx.h文件,查找strcasecmp来定位到需要修改的一行,按下图方式修改保存。

修改前
修改后

2. 项目文件

        demo中的文件结构如图所示,自己编写的C源文件等放在src文件夹下,而其他引入的库文件放在import文件夹下。

        相关文件https://github.com/bronya19c/CMake_Project_Demo_for_UDF

        根据计算模型和代码,需实时更改根目录和src文件下的CMakeLists.txt的内容

根目录下CMakeLists.txt
src文件夹下CMakeLists.txt

3. 编译调试

        将文件整理好后,在vscode的cmake插件里选择“配置所有项目”,并确保ud_io1.h或者udf_names.c正常生成。若无错误产生,此时再点击vscode最下方状态栏上的“build”按钮,生成libudf,完成编译。

cmake配置完项目
编译生成的libudf.dll

        关于调试,确保编译生成的是Debug版本的libudf,在Fluent加载好libudf.dll之后,利用vscode的附加到进程调试工具,实现对udf的调试。在根目录创建 .vscode 文件夹,其下创建的launch.json文件如下图。

        然后vscode里切到test.c文件,按F1键输入“调试”选择调试C/C++文件,之后选择gdb 附加,便可以附加到Fluent的进程中调试了。注意查看Fluent的控制台内容,其中host是我们这次要附加调试的进程,按照PID即可以对应上。

Fluent控制台的进程信息
附加到进程可输入PID搜索

        自此可以断点调试了。

        2023.4.2 初稿

参考链接:

[1] https://www.cnblogs.com/liusuanyatong/p/11259628.html 

    GCC编译UDF和gdb调试UDF - 硫酸亚铜 - 博客园 (cnblogs.com)

[2] https://www.bilibili.com/video/BV1A7411f7jT 

    CMake简明教程以及现代CMake

[3] https://www.cnblogs.com/liusuanyatong/p/11259591.html 

    编译udf小软件(附视频教程) - 硫酸亚铜 - 博客园 (cnblogs.com)

[4] https://zhuanlan.zhihu.com/p/492619039 

    Visual Studio或CLion使用CMake编译、调试Fluent UDF - 知乎 (zhihu.com)

vscode+msys2+cmake编译调试Fluent UDF记录的评论 (共 条)

分享到微博请遵守国家法律