我使用的是VS2008+Fluent6.3.26
1、读入你的case文件,只要在define->user-defined->functions->complied中,add你的udf源文件(*.c)和“udf.h”头文件,然后确定用户共享库(library name)的名称,按“build”,就相当于nmake用户共享库;
经常出现的错误:
(1)错误信息:
(system "move user_nt.udf libudf\ntx86\2d")
(system "copy C:\Fluent.Inc\fluent6.1.22\src\makefile_nt.udf libudf\ntx86\2d\makefile")已复制 1 个文件。
(chdir "libudf")()
(chdir "ntx86\2d")()
'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。
'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。
Done.
而点击load时则出现不可编译的错误:
Opening library "libudf"...
Error: open_udf_library: 系统找不到指定的文件。
Error Object: ()
错误原因:
没有安装vc或者没有选择环境变量
解决方法:
(a)没有安装vc的,安装VC,并选择环境变量;
(b) 没有正确设置环境变量的,按以下方法:
我的电脑 > 属性 > 高级 > 环境变量中设置“include”“lib”“path”变量的值,
include:D:\Program Files\Microsoft Visual Studio 9.0\VC\include
lib: D:\Program Files\Microsoft Visual Studio 9.0\VC\lib
path: 点击Microsoft Visual Studio .NET\Vc7\bin\cl.exe
如果出现 “没有找到mspdb80.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题”,
将D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mspdb80.dll复制至
D:\Program Files\Microsoft Visual Studio 9.0\VC\bin则上述错误消失
将 D:\Program Files\Microsoft Visual Studio 9.0\VC\bin 加入环境变量
但是如此处理以后,日后在直接使用VS2008时,会出现“fatal error C1902: 程序数据库管理器不匹配;请检查安装解决”的错误,为了使用VC2008能与FLUENT,我在安装路径Program Files\Microsoft Visual Studio 9.0\VC\bin里放了个mspdb80.dll,是从common7 中找到并粘贴过去的,因为想用bin目录下的dumpbin程序,然后使用VC2008本身编译就有问题,把这个目录里的mspdb80.dll删除立刻就好了。
(2)错误信息:
LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”
解决方法:
把“C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib”下的“kernel32.lib”拷贝到
“D:\Program Files\Microsoft Visual Studio 9.0\VC\lib”下
(3)警告信息:
D:\fluent.inc\fluent6.3.26\src\machine.h(114) : warning C4005: “stdout”: 宏重定义
D:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(161) : 参见“stdout”的前一个定义
d:\fluent.inc\fluent6.3.26\src\machine.h(115) : warning C4005: “stderr”: 宏重定义
D:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(162) : 参见“stderr”的前一个定义
d:\fluent.inc\fluent6.3.26\src\machine.h(116) : warning C4005: “stdin”: 宏重定义
D:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(160) : 参见“stdin”的前一个定义
未知原因,但是不会影响使用,可以忽略。
(4)错误信息:
# Generating udf_names.c because of makefile udf.obj
udf_names.c
udf_names.c(7) : error C2059: syntax error : '}'
udf_names.c(8) : warning C4034: sizeof returns 0
在c里调试已经通过了,但是在fluent编译时出现问题
解决方法:
找到一个带udf的例题,如果udf能正确运行,将该例题的udf源文件example.c另存为一个新文件;
然后,将上面的内容全部删除,将你编写的udf源文件的内容copy到新文件中去,
存储这个新文件后, 最后编译和创建用户共享库(build),就不会出现上述问题了。
2、然后在define->user-defined->functions->complied中按“load”,即连接共享库到fluent可执行文件中。
评论