当前较新版本的Fluent(如Fluent 2025R1)内置了clang编译器,编译UDF可以不需要安装Visual Studio。不过利用GCC进行UDF编译还是有不少优势的,包括:(1)gcc编译速度快,而且能够给出详细的调试信息。(2)方便在vscode之类的工具中进行代码编译和调试。(3)能够编译外部动态链接库。
以下是利用GCC进行Fluent UDF编译的基本过程。
Mingw64中包含了全部的GCC编译工具。
”
Mingw64官网地址:https://mingw-w64.org/ github仓库地址:https://github.com/niXman/mingw-builds-binaries/releases
嫌麻烦的话可以在github下载预编译版本,如下图所示。
下载后将文件解压到英文路径中,然后将解压文件的bin
文件夹所在路径添加到环境变量的path
中(可能需要重启电脑使环境变量生效),确保在cmd中可以直接执行gcc
。
在cmd中输入命令gcc --version
,如出现如下图所示的版本信息,则表示已经准备完毕。
进入CMake官网( https://cmake.org/ )下载CMake。
下载绿色版本即可。
下载完毕后解压缩。如解压到C:\mingw64\CMake
中(这里把doc文件夹删除了)。
这里采用github库https://github.com/bronya19c/CMake_Project_Demo_for_UDF
中的文件组织。
文件下载后解压到英文路径下,然后选择使用vscode
打开该文件夹。
打开CMakeLists.txt
文件,按文件中的提示信息进行修改,这里主要修改fluent路径及版本信息。
为了能够顺利编译,还需要修改一些内容。
${FLUENT_ROOT}/include
。不添加此行文本,在编译时会出现有大堆的找不到头文件的错误提示。C:\Program Files\ANSYS Inc\v241\fluent\fluent24.1.0\cortex\src\cx.h
文件,找到第118-119
行,修改成如下图所示。之所以修改这里的代码,主要是strecasecmp
与Mingw64中的相应代码冲突了,如果使用MSVC编译的话,则不需要修改此处代码。要编写的UDF源文件放在src
文件夹下面,如示例中的test.c
。需要注意的是,若我们自己添加了新的UDF文件,需要在src/CMakeLists.txt
文件中修改相应的文件路径信息。
在项目目录下启动CMD
,如下图所示。
输入以下命令(注意替换命令中的文件路径):
"C:\mingw64\CMake\bin\cmake.exe" -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=C:\mingw64\bin\gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=C:\mingw64\bin\g++.exe --no-warn-unused-cli -SC:/Users/Administrator/Desktop/demo -Bc:/Users/Administrator/Desktop/demo/build -G "MinGW Makefiles"
"C:\mingw64\CMake\bin\cmake.exe" --build c:/Users/Administrator/Desktop/demo/build --config Debug --target all -j 38 --
如下图所示。
此时可以看到在libudf
文件夹中有了编译完成后的dll文件。