找回密码
 注册
查看: 4271|回复: 1

[求助]急救:导入UDF时出现错误!

[复制链接]
发表于 2007-7-5 15:49:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
已复制         1 个文件。
(system "copy C:\Fluent.Inc\fluent6.2.16\src\makefile_nt.udf libudf\ntx86\2ddp\makefile")已复制         1 个文件。
0
(chdir "libudf")()
(chdir "ntx86\2ddp")()
';nmake'; 不是内部或外部命令,也不是可运行的程序
或批处理文件。
';nmake'; 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Done.
"d:/"
Opening library "libudf"...
Error: open_udf_library: 系统找不到指定的文件。
Error Object: ()
各位大虾帮忙看看,感激不尽!
发表于 2007-7-5 19:48:08 | 显示全部楼层

[求助]急救:导入UDF时出现错误!

我也遇到 这个问题刚解决,是你电脑上VC的问题,没有修改环境变量具体做法如下文:UDF编译的经验总结:
1)安装vc时候,只要选择了“环境变量”这一项,就不需要在“我的电脑 > 属性 > 高级 > 环境变量”中 更改“include”“lib”“path”变量的值,保持默认状态即可;
2)如果是fluent6.1以上的版本,读入你的case文件,只要在define->user-defined->functions->complied中, add你的udf源文件(*.c)和“udf.h”头文件,然后确定用户共享库(library name)的名称,按“build”,就相当于nmake用户共享库;在这一步中常出现的错误:
a)(system "move user_nt.udf libudf\ntx86\2d") ()   
已复制 1 个文件。( )
(system "copy C:\Fluent.Inc\fluent6.1.22\src\makefile_nt.udf libudf\ntx86\2d\makefile")
(chdir "libudf")  ( )
(chdir "ntx86\2d")  ( )
';nmake'; 不是内部或外部命令,也不是可运行的程序或批处理文件。
';nmake'; 不是内部或外部命令,也不是可运行的程序或批处理文件。
Done.
而点击load时则出现不可编译的错误:
Opening library "libudf"...
Error: open_udf_library: 系统找不到指定的文件。
Error Object: ( )
原因:没有安装vc或者没有选择环境变量。
解决方法:安装vc,并选择环境变量;没有正确设置环境变量的,按以下方法:
在我的电脑 > 属性 > 高级 > 环境变量中设置“include”“lib”“path”变量的值, . include:D:\Program Files\Microsoft Visual Studio .NET\Vc7\include\
. lib:D:\Program Files\Microsoft Visual Studio .NET\Vc7\lib\
找到Microsoft Visual Studio .NET\Vc7\bin\cl.exe的动态链接库mspdb70.dll, 将mspdb70.dll的 路径加入到path的值。
cl.exe 是 the Microsoft Visual Studio的编辑执行文件,只要正确设置环境变量后,你才能看到以下信息:
      Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
usage: cl [ option... ] filename... [ /link linkoption...
(b)(system "move user_nt.udf libudf\ntx86\3d") ( )
     (system "copy C:\fluent.inc\fluent6.1\src\makefile_nt.udf libudf\ntx86\3d\makefile")已复制 1 个文件。 ( )
     (chdir "libudf")     ( )
     (chdir "ntx86\3d")   ( )
     udf.c
     # 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  ( )
Done.
3) 然后在define->user-defined->functions->complied中按“load”,即连接共享库到fluent可执行文件中。
    请楼主参考一下吧,应该照着做就可以解决这个问题了。或者你不要用compile编译,用interpret(如果udf比较简单的话)。
注:如果在c里调试已经通过了,但是在fluent编译时出现问题?
解决方法:找到一个带udf的例题,如果udf能正确运行,将该例题的udf源文件example.c另存为一个新文件; 然后,将上面的内容全部删除,将你编写的udf源文件的内容copy到新文件中去,存储这个新文件后, 最后编译和创建用户共享库(build),就不会出现上述问题了。 原因:可能是自己编写udf源文件的模板不对,具体原因我也不太清楚,请大家指教了。
学习Fluent的经验汇总
1. 现在用FLUENT的UDF来加入模块,但是用compiled udf时,共享库老是连不上?
解决办法:
1〉你的计算机必须安装C语言编译器。
2〉请你按照以下结构构建文件夹和存放文件:
libudf/src/*.c (*.c为你的源程序);
libudf/ntx86/2d(二维为2d,三维为3d)/makefile(由makefile_nt.udf改过来的) libudf/ntx86/2d(二维为2d,三维为3d)/user_nt.udf(对文件中的SOURCE,VERSION,P ARALLEL_NODE进行相应地编辑)。
3〉通过命令提示符进入文件夹libudf/ntx86/2d/中,运行C语言命令 nmake,如果C预言
编译器按装正确和你的源程序无错误,那么此时会编译出Fluent需要的库文件(*.lib)
这时再启动Fluent就不会出错了。  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表