找回密码
 注册
查看: 1718|回复: 10

怎么调试udf的错误

[复制链接]
发表于 2004-6-4 12:03:07 | 显示全部楼层 |阅读模式

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

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

x
发现udf编译时出现错误,但是在c里通过了,怎么知道udf的错误在哪行呀?
发表于 2004-6-4 13:45:29 | 显示全部楼层

怎么调试udf的错误

不太明白你的意思,你不需要在c下面对UDF进行编译,可以直接在Fluent里面编译,有什么错误和问题也同样会提示。
 楼主| 发表于 2004-6-4 14:07:17 | 显示全部楼层

怎么调试udf的错误

    #include "udf.h"
/* Define which user-defined scalars to use. */
   enum
   {
  metal,
   N_REQUIRED_UDS
   };

   DEFINE_ADJUST(metal_adjust, domain)
   {
  /* Make sure there are enough user defined-scalars. */
    if (n_uds < N_REQUIRED_UDS)
  Internal_Error("not enough user-defined scalars allocated");
   }


  DEFINE_SOURCE(metal_source, c, t, dS, eqn)
  {
  dS[eqn] = -16.*pow(C_T(c,t),3.);
  return -4.*pow(C_T(c,t),4.);
  }
已复制         1 个文件。
(system "move user_nt.udf libudf\ntx86\3d")0
(system "copy C:\fluent.inc\fluent6.1\src\makefile_nt.udf libudf\ntx86\3d\makefile")已复制         1 个文件。
0
(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 0
发表于 2004-6-4 14:45:09 | 显示全部楼层

怎么调试udf的错误

在N_REQUIRED_UDS后面加个逗号,Fluent手册里面的例子里面漏了一个逗号
 楼主| 发表于 2004-6-4 15:02:31 | 显示全部楼层

怎么调试udf的错误

不行呀,加了也不行
发表于 2004-6-4 15:21:12 | 显示全部楼层

怎么调试udf的错误

我编译都通过了,你还是出现了同样的错误吗?如果是用compiled方法编译的话,你要修改的源文件应该是libudf目录下面的那个文件,而不是最开始的文件,你再试试看,路径是libudf/src/*.c。
 楼主| 发表于 2004-6-4 15:50:33 | 显示全部楼层

怎么调试udf的错误

还是不行,是不是跟版本有关?我用的盗版fluent6.1.18,我compile过udf training cd里的udf,没有问题,现在我发现我的udf文件里只有include "udf.h"这一行都会出现相同的错误,
发表于 2004-6-4 16:41:15 | 显示全部楼层

怎么调试udf的错误

这个没什么关系吧,因为开始我编译也出现错误了,加了逗号之后就可以了
你要确保你重新编译的就是你已经改过了的程序。
 楼主| 发表于 2004-6-4 22:01:37 | 显示全部楼层

怎么调试udf的错误

这是libudf/src/metal.c
  
#include"udf.h"
  enum
  {
  metal,
  N_REQUIRED_UDS,
  };
  DEFINE_ADJUST(metal_adjust, domain)
  {

   if (n_uds < N_REQUIRED_UDS)
Internal_Error("not enough user-defined scalars allocated");
  }

DEFINE_SOURCE(metal_source, c, t, dS, eqn)
{
dS[eqn] = -16.*pow(C_T(c,t),3.);
return -4.*pow(C_T(c,t),4.);
}

compile后出现:
Done.
已复制         1 个文件。
(system "move user_nt.udf libudf\ntx86\3d")0
(system "copy C:\fluent.inc\fluent6.1\src\makefile_nt.udf libudf\ntx86\3d\makefile")已复制         1 个文件。
0
(chdir "libudf")()
(chdir "ntx86\3d")()
metal.c
# Generating udf_names.c because of makefile metal.obj
udf_names.c
udf_names.c(7) : error C2059: syntax error : '}'
udf_names.c(8) : warning C4034: sizeof returns 0
Done.
绝望,是不是版本的问题,请大家多多指点
发表于 2004-6-4 23:18:15 | 显示全部楼层

怎么调试udf的错误

你在libudf/ntx86/2ddp下面运行nmake命令试试看
 楼主| 发表于 2004-6-5 06:10:18 | 显示全部楼层

怎么调试udf的错误

C:\libudf\ntx86\3d>nmake
Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
        cl /c /Za /DUDF_EXPORTING -Ic:\fluent.inc\fluent6.1\ntx86\3d  -Ic:\fluen
t.inc\fluent6.1\src  -Ic:\fluent.inc\fluent6.1\cortex\src  -Ic:\fluent.inc\fluen
t6.1\client\src  -Ic:\fluent.inc\fluent6.1\tgrid\src  -Ic:\fluent.inc\fluent6.1\
multiport\src  udf_names.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
udf_names.c
udf_names.c(7) : error C2059: syntax error : '}'
udf_names.c(8) : warning C4034: sizeof returns 0
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.
不行呀,大哥你真是可以compile吗?我今天到一个正版的上去试试,好绝望
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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