登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

雨碎江南

天之道,不争而善胜,不言而善应,不召而自来,坦然而善谋

 
 
 

日志

 
 

Compiled UDF的使用方法  

2011-03-27 14:45:36|  分类: 工作相关记录 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 最初写UDF的时候,一般使用Interpreted UDF,其使用比较方便和简单,但是随着写的UDF越来越复杂,而且有很多的UDF只能使用Compiled UDF,才开始学习,其过程复杂的多了,经过一段时间的学习,做了一下整理:
       我使用的是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可执行文件中。

  评论这张
 
阅读(1385)| 评论(2)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018