找回密码
 注册
查看: 8966|回复: 3

Fluent编译UDF出现无法打开文件LIBCMT.lib问题

[复制链接]
发表于 2011-7-27 22:08:46 | 显示全部楼层 |阅读模式

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

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

x
最近需要进行MATLAB与Fluent联合仿真,因此遇到编写UDF的情况。今天在利用Fluent编译UDF时,出现无法打开文件LIBCMT.lib问题,编译内容如下所示:

Deleted old libudf\ntx86\2d\libudf.dll
已复制         1 个文件。
已复制         1 个文件。
(system "copy C:\Fluent.Inc\fluent6.3.26\src\makefile_nt.udf libudf\ntx86\2d\makefile")
已复制         1 个文件。
(chdir "libudf")()
(chdir "ntx86\2d")()
mixertest1intlet2.c
C:\Fluent.Inc\fluent6.3.26\src\machine.h(114) : warning C4005: 'stdout' : macro redefinition
        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdio.h(160) : see previous definition of 'stdout'
C:\Fluent.Inc\fluent6.3.26\src\machine.h(115) : warning C4005: 'stderr' : macro redefinition
        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdio.h(161) : see previous definition of 'stderr'
C:\Fluent.Inc\fluent6.3.26\src\machine.h(116) : warning C4005: 'stdin' : macro redefinition
        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdio.h(159) : see previous definition of 'stdin'
# Generating udf_names.c because of makefile mixertest1intlet2.obj
udf_names.c
c:\fluent.inc\fluent6.3.26\src\machine.h(114) : warning C4005: 'stdout' : macro redefinition
        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdio.h(160) : see previous definition of 'stdout'
c:\fluent.inc\fluent6.3.26\src\machine.h(115) : warning C4005: 'stderr' : macro redefinition
        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdio.h(161) : see previous definition of 'stderr'
c:\fluent.inc\fluent6.3.26\src\machine.h(116) : warning C4005: 'stdin' : macro redefinition
        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdio.h(159) : see previous definition of 'stdin'
# Linking libudf.dll because of makefile user_nt.udf udf_names.obj mixertest1intlet2.obj
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”

Done.

我使用的Fluent版本为6.23,VC采用的是VS2005,UDF源文件也是采用VS2005编写而成的。有哪位大虾知道这是怎么回事儿?谢谢!
 楼主| 发表于 2011-8-11 15:20:09 | 显示全部楼层

这么多天终于搞定了

上述问题原因依然是由于VS2005环境变量设置有错。我是直接将VS2005安装在C:\program下的,如安装到其他目录下,可以参考进行修改即可。具体解决方法如下:

环境变量path设置:
在环境变量Path中添加VC的bin目录。变量名path,变量值C:\Program Files\Microsoft Visual Studio 8\VC\bin\;
同时需要将目录C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\;下的msobj80.dll、mspdb80.dll、mspdbcore.dll、mspdbsrv.exe这四个文件拷贝至C:\Program Files\Microsoft Visual Studio 8\VC\bin\;

环境变量include设置:
在环境变量Path中添加VC的include目录。变量名include,变量值C:\Program Files\Microsoft Visual Studio 8\VC\include;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include
要注意上面是两个值,分别是\VC\include和\VC\PlatformSDK\include,我之前只有前一个

环境变量lib设置:
在环境变量Path中添加VC的lib目录。变量名lib,变量值C:\Program Files\Microsoft Visual Studio 8\VC\lib\;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib;要注意上面是两个值,分别是\VC\lib和\VC\PlatformSDK\lib,我之前只有前一个。

和我采用相同版本的这样设置应该就可以使用编译型UDF了,其他版本我也不是很清楚
发表于 2012-4-7 10:27:08 | 显示全部楼层

回复 2# tlss31306 的帖子

兄弟,我按照你的来做的,怎么不成呢?我也是VS2005,加我Q 773939981  交流下吧
发表于 2012-4-7 10:36:43 | 显示全部楼层
Deleted old libudf\ntx86\2d\libudf.dll
系统找不到指定的文件。
(system "copy C:\Fluent.Inc\fluent6.3.26\src\makefile_nt.udf libudf\ntx86\2d\makefile")
已复制         1 个文件。
(chdir "libudf")()
(chdir "ntx86\2d")()

Done.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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