在64位操作系统中编译UDF
Fluent无法编译UDF文件的常见解决方法
解决Fluent无法编译UDF文件的问题方法1对于Fluent加载UDF时出现"The UDF library you are trying to load(libudf)is not complied for parallel use on the current platform (win64)"错误,主要是没有正确设置本机VS安装路径,导致udf编译器无法成功编译c代码。
解决方法:1. 找到Fluent内的UDF.bat编译器。
这里以我自己2019R2的64位学生版为例,在D:\Program Files\ANSYS Inc\ANSYS Student\v194\fluent\ntbin\win64下找到udf.bat用记事本打开2. 将本机Visual Studio的安装路径写入。
这里以我自己VS2015为例,将本机visual studio 2015的安装路径赋值给MSVC_DEFAULT,由于VS2015的版本代号是14.0,因此将"%ProgramFiles(x86)%\Microsoft Visual Studio 14.0"替换为"D:\Program Files (x86)\Microsoft Visual Studio 14.0",保存文件即可,如图1~2所示更改前更改后方法2对于某些低版本的VS,以上操作可能不足以解决问题,需要手动配置环境变量,具体方法如下:1.找到Fluent安装路径下的setenv.exe,双击运行选择是,路径X:\Program Files\ANSYS Inc\v130\fluent\ntbin\win64\setenv.exe2.右键“我的电脑”—属性—高级—环境变量,添加用户变量,以VS2013为例INCLUDE=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;LIB=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\kernel32.libPath=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64;D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;。
如何使用通用磁盘格式UDF在多种操作系统下读写
如何使用通用磁盘格式UDF在多种操作系统下读写通用磁盘格式UDF在多种操作系统下读写指南随着存储技术的发展和普及,人们的数据储存需求越来越高。
但是由于不同操作系统之间的文件系统存在差异,同时还有一些特定的存储需要,比如大容量光盘或者蓝光光盘,在不同的操作系统之间进行读写会遇到很多的困难。
这时,通用磁盘格式UDF就成为了一种很好的解决方法。
本文将为您介绍如何使用UDF格式在多种操作系统下进行读写。
一、什么是UDF格式UDF是Universal Disk Format的缩写,中文名为通用磁盘格式。
UDF格式作为新一代光盘文件系统,被广泛应用于光盘储存领域。
它的优势在于它对于存储得到把握很大,同时在不同的操作系统之间能够进行多平台的文件共享,并且对于大容量光盘的存储也具有很好的支持。
UDF格式是非常适合在不同操作系统之间进行读取和写入的。
二、UDF格式的特点UDF格式的最大特点就是在多种操作系统之间进行读写时,它能够很好地完成操作。
UDF格式支持windows、Linux、MacOS和Unix等多种不同操作系统,同时也支持不同设备之间的数据交换,比如PC、移动硬盘、光盘等。
而且,UDF格式可以很好地支持大容量储存,比如蓝光盘、超级视频光盘等,从而满足用户对于大容量储存的需求。
三、如何在不同的操作系统下读写UDF格式1.在Windows系统下读写UDF格式Windows操作系统默认只支持读取UDF格式,如果想要写入,则需要安装第三方驱动程序才行。
其中比较常见的有两种驱动程序。
一种是Imgburn,该驱动支持烧录CUE,ISO等格式文件。
安装后启动软件,选择Write image file to disk,选择ISO文件进行烧录即可。
另外一种是UDF Reader,它是一种免费的UDF阅读器,能够实现对于UDF 格式文件的读写,为Windows系统提供了很好的支持。
2.在Linux系统下读写UDF格式UDF对于Linux来说,是一种默认支持的文件系统。
64位 ANSYS FLUENT 编译UDF方法
ANSYS FLUENT 12.x 13.x版下使用Visual Studio 2010编译UDF的设置方法COMSOL出了点问题,只能重装系统搞定。
神马软件都要重装啊,今天装好ANSYS后,打开FLUENT界面时,灵感闪现,想出下面的方法设置UDF编译环境。
其实ANSYS版的FLUENT用UDF是不需要到系统环境变量里面设置path,include,lib的,如果您用的是Visual Studio 2010及后续版本,只需要按一定的规则设置udf.bat文件就行了。
从udf.bat文件结构看,VS版本在VS2010以前的都可以不用设置,即可使用。
实现方法,以Win7 X64位ANSYS X64位为例:1.找到fluent安装目录下的udf.bat(C:\Program Files\ANSYS Inc\v121\fluent\ntbin\win64\udf.bat)用文本编辑器修改udf.bat:添加echo trying to find MS C compiler, version 10.0....set MSVC_DEFAULT=%ProgramFiles(x86)%\Microsoft Visual Studio 10.0if exist "%MSVC_DEFAULT%\vC\vcvarsall.bat" set MSVC=%MSVC_DEFAULT%if not "%MSVC%" == "" goto msvc_env100set MSVC_DEFAULT=%ProgramFiles%\Microsoft Visual Studio 10.0if exist "%MSVC_DEFAULT%\vC\vcvarsall.bat" set MSVC=%MSVC_DEFAULT%if not "%MSVC%" == "" goto msvc_env100:msvc_env100set MSVC_VERSION=100call "%MSVC%\VC\vcvarsall.bat" amd64goto ms_c_end注:如果Visual Studio安装到其他盘,(可能)需要修改路径,比如装到D盘Program Files下,便这样添加:set MSVC_DEFAULT=d:\Program Files\Microsoft Visual Studio 10.0if exist "%MSVC_DEFAULT%\vC\vcvarsall.bat" set MSVC=%MSVC_DEFAULT%if not "%MSVC%" == "" goto msvc_env100:msvc_env100set MSVC_VERSION=100call "%MSVC%\VC\vcvarsall.bat" amd64goto ms_c_end2. 保存该文件即可实现编译环境设置3. 打开FLUENT,确认勾选UDF compiler下的setup compilation environment for UDF:4. 编译成功附:环境变量设置方法:include中添加:64位系统:%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\include;%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\Include;32位系统:%ProgramFiles%\Microsoft Visual Studio 10.0\VC\include;%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Include;path 中添加:64位系统:%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\lib;%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\lib32位系统:%ProgramFiles%\Microsoft Visual Studio 10.0\VC\lib;%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\liblib中添加:64位系统:%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\bin;%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\bin\amd64;%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE;%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\Tools;32位系统:%ProgramFiles%\Microsoft Visual Studio 10.0\VC\bin;%ProgramFiles%\Microsoft Visual Studio10.0\VC\bin\amd64;%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE;%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\Tools;天乐树2011.10.20。
udf编译
udf编译UDF编译什么是UDF?UDF(User Defined Function)即用户自定义函数,是一种用户可以自行编写并添加到数据库中的函数。
它可以扩展数据库的功能,使得用户可以使用自己定义的函数来完成一些特定的操作。
UDF编译过程在MySQL中,UDF是通过动态链接库(DLL)实现的。
因此,要使用UDF,必须先将其编译成动态链接库。
1. 编写UDF源代码首先需要编写一个C/C++源文件来实现自己想要实现的功能。
这个源文件需要包含以下内容:- 头文件:包含必要的头文件,如mysql.h、stdio.h等。
- 函数声明:声明需要实现的函数。
- 函数定义:实现需要实现的函数。
例如,下面是一个简单的UDF源代码示例:```#include <stdio.h>#include <mysql.h>my_bool hello_init(UDF_INIT *initid, UDF_ARGS *args, char *message);void hello_deinit(UDF_INIT *initid);char* hello(UDF_INIT *initid, UDF_ARGS *args, char* result, unsigned long* length, char* is_null, char* error);my_bool hello_init(UDF_INIT *initid, UDF_ARGS *args, char *message){return 0;}void hello_deinit(UDF_INIT *initid){return;}char* hello(UDF_INIT *initid, UDF_ARGS *args, char* result, unsigned long* length, char* is_null, char* error){sprintf(result, "Hello, %s!", args->args[0]);*length = strlen(result);return result;}```这个UDF实现的功能是将输入的字符串加上“Hello, ”前缀输出。
Fluent用户自定义函数(UDF)VC++环境变量配置详细步骤
Fluent用户自定义函数(UDF)VC++环境变量配置详细步骤(一)操作环境:
操作系统版本:WIN7旗舰版Service Pack 1
系统类型:64位操作系统
Fluent版本:6.3.26
VC++版本:6.0
(二)操作步骤:
(1)正确安装Fluent6.3.26和VC++6.0。
(2)鼠标右键单击“计算机”,选择“属性”选项,打开“系统”窗口,点击窗口左侧“高级系统设置”,打开“系统属性”设置面板。
(3)在“系统属性”设置面板中,点击“环境变量”按钮,打开“环境变量”设置面板。
打开“新建用户变量”对话框,开始创建环境变量。
(5)在本案例中要设置三个用户变量,分别是include、lib和path变量。
首先在“变量名”中输入“include”作为变量名,然后打开VC++6.0的安装目录,单击地址栏,使之进入可编辑状态,将路径复制到“变量值”中,单击“确定”,include变量就设置好了。
按照同样的方法设置lib变量和path变量,设置好的变量如下图所示:
未进行环境变量配置前,Fluent控制台可能显示的信息如下:
环境变量配置成功后Fluent控制台显示信息如下:。
Fluent 64bit操作系统编译udf
Fluent12.0在64位操作系统中编译UDF简单操作
操作系统为windows 7 64bit,fluent计算采用编译型udf,直接打开fluent可能会遇到“系统找不到指定的路径”“’nmake’不是内部或外部命令,也不是可运行的程序或批处理文件”等问题。
这里介绍一个简单地操作。
首先在开始菜单中找到编译器,此处为visual studio 2010 ,打开visual studio tools,可以看到visual studio X64 win64 命令提示(2010),将其发送到桌面快捷方式。
然后在开始菜单中找到Fluent,将其发送到桌面快捷方式。
然后运行visual studio X64 win64 命令提示(2010),将fluent的图标拖动到visual studio X64 win64 命令提示(2010)窗口中,回车打开fluent运行,此时发现udf可以build了。
Fluent用户自定义函数(UDF)VC++环境变量配置详细步骤
Fluent用户自定义函数(UDF)VC++环境变量配置详细步骤(一)操作环境:
操作系统版本:WIN7旗舰版Service Pack 1
系统类型:64位操作系统
Fluent版本:6.3.26
VC++版本:6.0
(二)操作步骤:
(1)正确安装Fluent6.3.26和VC++6.0。
(2)鼠标右键单击“计算机”,选择“属性”选项,打开“系统”窗口,点击窗口左侧“高级系统设置”,打开“系统属性”设置面板。
(3)在“系统属性”设置面板中,点击“环境变量”按钮,打开“环境变量”设置面板。
打开“新建用户变量”对话框,开始创建环境变量。
(5)在本案例中要设置三个用户变量,分别是include、lib和path变量。
首先在“变量名”中输入“include”作为变量名,然后打开VC++6.0的安装目录,单击地址栏,使之进入可编辑状态,将路径复制到“变量值”中,单击“确定”,include变量就设置好了。
按照同样的方法设置lib变量和path变量,设置好的变量如下图所示:
未进行环境变量配置前,Fluent控制台可能显示的信息如下:
环境变量配置成功后Fluent控制台显示信息如下:。
Fluent安装在64位系统后编译中出现的的常见错误与应对方法
Fluent安装在64位系统后编译中出现的的常见错误与应对方法这几天在64位windows系统下装fluent,使用UDF编译时碰到各种错误,花了一天功夫,终于基本解决,贴上来跟大家分享下1.exceed无法安装exceed版本太低,不支持64位系统,使用exceed 11或更高级版本2、编译时出现'nmake' is not recognized as an internal or external command没有安装VC或者装了但环境变量没有设置好。
安装Visual Studio 2008(2010和2005应该也行),安装时选择完全安装,实在空间不够,就选自定义安装,其中64位编译器一定要勾上。
安装完成后设置环境变量(参考了傲雪论坛的gearboy的方法)(1)、按以下顺序点击:开始——程序——Fluent Inc products——Fluent 6.3.26,运行该菜单下的Set Enviroment;(2)、(如果第一次安装Visual Studio就选择了完全安装,这步可以省略,只要安装完成后启动下Visual Studio即可)右击“我的电脑”——属性——高级——环境变量,在这个菜单下,上方是用户变量,下方是系统变量,现在修改用户变量。
新建一个变量命名为“Include”,在Variable values中粘贴以下部分(具体目录按照自己电脑安装情况可能需要修改,如果Visual Studio安装在默认目录下,则直接粘贴):C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include按同样的方法增加变量如下LibC:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64;C:\Program Files (x86)\Microsoft Visual Studio9.0\VC\atlmfc\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\amd64LibpathC:\WINDOWS\\Framework64\v3.5;C:\WINDOWS\\Framework64\v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\amd64Pathc:\fluent.inc\ntbin\win64;C:\Program Files (x86)\Microsoft Visual Studio9.0\VC\bin\amd64;C:\WINDOWS\\Framework64\v3.5;C:\WINDOWS\\Framework64\v3.5\Microsoft .NET Framework 3.5 SP1;C:\WINDOWS\\Framework64\v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files(x86)\Microsoft Visual Studio 9.0\Common7\Tools;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin;注:32系统可以安装6.0版本的VC,安装时选择“注册环境变量”即可,这样比较省事3、经过第2步的处理后,nmake的错误没了,但出现stdout等三个宏被重定义的问题按理不应该有这种错误,我目前没有很好的解决方法。
完美解决win7_64bit系统环境中用ANSYS12.fluent+vs2010编译UDF
完美解决win7 64bit系统环境中用ANSYS12.fluent+vs2010编译UDF很兴奋,刚刚成功设置了环境变量。
让我在FLUENT中可以直接调用VS2010编译UDF程序。
(By AYA)以前用的win7系统是32位的,最近买了根4G的内存换了上去,刚开始很兴奋,期盼我的TOSHIBA可以奔到快一点。
把内存插好以后很惊讶的发现,系统只能控制2.74G,心里拔凉的。
心里不甘啊,一狠心决定把系统换成64bit的。
换系统是个苦力活,要耗时间耗体力去装很多软件。
ANSYS12.0、vs2010这两个软件都有五六G,装了三个多小时才搞定。
按照以前32位系统的方法设置环境变量:1. 变量名:path 变量值:C:\Program Files\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;2.变量名:include 变量值:C:\Program Files\Microsoft Visual Studio 10.0\VC\include;3.变量名:lib 变量值:C:\Program Files\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib;设置好以后,在FLUENT中编译,总是出现标志符错误。
没办法,只好网上搜罗别人的宝贵经验。
其中最靠谱的一个就是,用vs2010自带的工具里的win64命令提示。
从这个命令提示中找到fluent,然后启动它。
本人实验了一下,确实奏效,成功编译。
因为平时经常修改UDF,这种启动方法对我来说太耗体力。
于是决定自己想办法解决它。
既然通过命令提示启动fluent并成功,说明vs2010和fluent能够协作起来,肯定通过合理的设置能够解决这个难题。
win7 64位如何编译汇编语言(无需xp虚拟机)
现在进入正题,汇编编译器masm无法在64位下运行,在64位下使用masm编译器会提示不兼容,安装虚拟机xp的确可以解决,但是虚拟机太大了,在虚拟机里面写代码总有种盗梦空间的感觉。
那么,可以在win7 64bit安装DOS虚拟机,现在DOSBox隆重登场。
(见附件,1.38M)
这个DOSBox是什么?简单的说就是一个DOS虚拟机(32位),可以在DOSBox下面运行masm。
首先,安装,就是一直下一步。
然后,打开DOSBox,看到如下界面
假设编译器在E:\masm5,就是那个有masm.exe,debug.exe,link.exe的那个文件夹
输入命令mount C E:\masm5 (把文件夹E:\masm5当作虚拟机的C盘)
然后输入C:(进入虚拟的C盘,其实就是E:\masm5)
下面就和老师说的差不多了,记住要把代码(asm文件)放到E:\masm5,省的再找。
如果想使用那个坑爹的edit编辑器(类似Linux下的vi),这个DOS虚拟机里面没有,如果想用的话,我提取了xp里面带的edit编辑器,编辑器界面很坑爹,推荐大家使用notepad++,记事本之类的。
(见附件)
win7 64bit无法编译汇编程序的问题解决,祝大家能够完成汇编软件实验。
——悠悠
附下载地址:(已经传到网盘里面)
DOSBox:/s/19qCiV
masm5+edit编辑器:/s/1imn1Q。
GCC编译UDF和gdb调试UDF
GCC编译UDF和gdb调试UDFFluent版本:19.0前⾯我们介绍过使⽤VS来编译和调试UDF,其实我们也可以⽤GCC来编译UDF、gdb调试UDF。
本次介绍的⽅法更具有通⽤性,也适⽤于Linux下Fluent的UDF编译和调试⾸先我们介绍使⽤GCC来编译UDF我习惯使⽤TDM-GCC,下载地址为:下⾯就安装TDM-GCC安装完TDM-GCC在TDM-GCC安装⽬录下查找gendef.exe,我的路径是I:\TDM-GCC-64\x86_64-w64-mingw32\bin然后我们启动⼀个cmd窗⼝转到Fluent的库⽂件⽬录下,我的⽬录分别为:I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2dI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d_hostI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d_nodeI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddpI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp_hostI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp_nodeI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3dI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3d_hostI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3d_nodeI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddpI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp_hostI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp_nodeI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\win64\mpi\sharedI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\win64\net\shared我们以I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d为例:将cmd窗⼝转到⽬录下然后⽣成def⽂件然后根据def⽣成GCC能识别的库其余的⽬录根据上⾯的操作重复即可,注意⼀下I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d_nodeI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp_nodeI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3d_nodeI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp_node命令:"I:\TDM-GCC-64\x86_64-w64-mingw32\bin\gendef.exe" fl_mpi1900.exe⽣成def⽂件命令:dlltool --dllname fl_mpi1900.exe --def fl_mpi1900.def --output-lib fl_mpi1900.a⽣成GCC的库⽽I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\win64\mpi\sharedI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\win64\net\shared命令:"I:\TDM-GCC-64\x86_64-w64-mingw32\bin\gendef.exe" mport.dll⽣成def⽂件命令:dlltool --dllname mport.dll --def mport.def --output-lib mport.a⽣成GCC的库注意:以上步骤只需要第⼀次进⾏操作,以后再编译的时候就⽆需重复上⾯的步骤了,可直接使⽤这些已经⽣成的库然后我们就可以编译UDF了(以⼆维双精度为例),但是UDF的写法必须按照下⾯的写法Fluent相关的头⽂件:I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddpI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\mainI:\ Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\addon-wrapperI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\ioI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\speciesI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\pbnsI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\numericsI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\sphysicsI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\storageI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\mphaseI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\bcI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\modelsI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\materialI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\amgI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\utilI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\meshI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\udfI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\htI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dxI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\turbulenceI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\parallelI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\etcI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\ueI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dpmI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dbnsI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\cortex\srcI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\client\srcI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\tgrid\srcI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\srcI:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\mpi_wrapper\src注意:此处需要注意⼀下:请务必严格按照上⾯的头⽂件顺序!⽰例是⼆维双精度的UDF,所以是I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp如果是⼆维双精度并⾏UDF,那么就需要编译两次对于host,那么就是I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp_host对于node,那么就是I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp_node如果是⼆维单精度就需要改变为:I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d如果是⼆维单精度并⾏UDF,那么就需要编译两次对于host,那么就是I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d_host对于node,那么就是I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d_node如果是三维双精度就需要改变为:I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp如果是三维双精度并⾏UDF,那么就需要编译两次对于host,那么就是I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp_host对于node,那么就是I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp_node如果是三维单精度就需要改变为:I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3d如果是三维单精度并⾏UDF,那么就需要编译两次对于host,那么就是I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3d_host对于node,那么就是I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3d_node在cmd窗⼝转⼊UDF源代码所在⽬录,我的是N:\demo_case然后输⼊下⾯的命令mkdir .\libudf\win64\2ddp &&gcc -shared -o .\libudf\win64\2ddp\libudf.dll demo.c "I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\win64\2ddp\fl1900.a" -I. -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\main" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\addon-wrapper" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\io" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\species" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\pbns" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\numerics" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\sphysics" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\storage" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\mphase" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\bc" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\models" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\material" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\amg" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\util" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\util" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\mesh" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\udf" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\ht" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\dx" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\turbulence" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\parallel" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\etc" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\ue" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dpm" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\dbns" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\cortex\src" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\client\src" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\tgrid\src" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\multiport\src" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\mpi_wrapper\src"简单解释⼀下上⾯的命令:mkdir .\libudf\win64\2ddp表⽰⾸先创建放置UDF⽣成⽂件的⽬录,否则后⾯直接编译的话,GCC不会⾃动⽣成⽬录从⽽造成编译出错&&表⽰⽬录创建成功才能进⾏后⾯的命令-o .\libudf\win64\2ddp\libudf.dll表⽰⽣成的UDF⽂件并且将其⽣成在前⾯⽣成的⽬录下demo.c "I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp\fl1900.a"其中demo.c表⽰前⾯编写的UDF源代码,⽽后⾯这个是GCC需要连接的Fluent的库,我们这⾥是⼆维双精度,所以是"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp\fl1900.a"如果是⼆维单精度"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d\fl1900.a"如果是三维双精度"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp\fl1900.a"如果是三维单精度"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3d\fl1900.a"编译完成我们打开Fluent当然我们也可以⽤C++的⽅式来编译,只需要将UDF按照如下的⽅式来改写即可,上⾯编译的命令gcc改为g++即可接下来我们介绍如何使⽤gdb来调试UDF,原始的gdb是命令⾏来操作⾮常不⽅便这⾥的gdb我们采⽤gdbgui,可以在浏览器中通过图形化界⾯的⽅式来对UDF程序进⾏调试虽然gdbgui有打包好的exe包,但是这个包已经过时,⽆法⽤来调试UDF,所以我们采⽤python安装的⽅式安装最新的gdbgui然后打开cmd窗⼝,转⼊anaconda安装⽬录下的Scripts⽬录(我的是I:\Anaconda2\Scripts),如果不转到该⽬录下可能会安装出现问题然后输⼊pip install gdbgui --upgrade命令安装完成我在⽤python3安装gdbgui的时候,maskupsafe可能会失败,只需要单独下载安装包本地安装即可,下载链接:在cmd当中输⼊gdbgui test命令表⽰安装成功接下来我们介绍如何使⽤gdbgui来调试UDF⾸先我们编写如下的UDF源码:然后我们转⼊算例⽬录,在cmd下输⼊下⾯的命令:mkdir .\libudf\win64\2ddp && gcc -O0 -g -shared -o .\libudf\win64\2ddp\libudf.dll demo.c "I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\win64\2ddp\fl1900.a" -I. -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\main" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\addon-wrapper" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\io" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\species" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\pbns" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\numerics" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\sphysics" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\storage" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\mphase" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\bc" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\models" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\material" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\amg" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\util" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\util" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\mesh" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\udf" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\ht" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\dx" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\turbulence" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\parallel" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\etc" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\ue" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dpm" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\src\dbns" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\cortex\src" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\client\src" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\tgrid\src" -I"I:\Program Files\ANSYSInc\v190\fluent\fluent19.0.0\multiport\src" -I"I:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\mpi_wrapper\src"注意:稍微解释⼀下上⾯这个命令的参数:-O0表⽰不做任何优化,其实是默认选项,这⾥不写也可以,启⽤这个选项就是为了防⽌后⾯调试的错误。
Fluent安装在64位系统后编译中出现的的常见错误与应对方法
Fluent安装在64位系统后编译中出现的的常见错误与应对方法这几天在64位windows系统下装fluent,使用UDF编译时碰到各种错误,花了一天功夫,终于基本解决,贴上来跟大家分享下1.exceed无法安装exceed版本太低,不支持64位系统,使用exceed 11或更高级版本2、编译时出现'nmake' is not recognized as an internal or external command没有安装VC或者装了但环境变量没有设置好。
安装Visual Studio 2008(2010和2005应该也行),安装时选择完全安装,实在空间不够,就选自定义安装,其中64位编译器一定要勾上。
安装完成后设置环境变量(参考了傲雪论坛的gearboy的方法)(1)、按以下顺序点击:开始——程序——Fluent Inc products——Fluent 6.3.26,运行该菜单下的Set Enviroment;(2)、(如果第一次安装Visual Studio就选择了完全安装,这步可以省略,只要安装完成后启动下Visual Studio即可)右击“我的电脑”——属性——高级——环境变量,在这个菜单下,上方是用户变量,下方是系统变量,现在修改用户变量。
新建一个变量命名为“Include”,在Variable values中粘贴以下部分(具体目录按照自己电脑安装情况可能需要修改,如果Visual Studio安装在默认目录下,则直接粘贴):C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include按同样的方法增加变量如下LibC:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64;C:\Program Files (x86)\Microsoft Visual Studio9.0\VC\atlmfc\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\amd64LibpathC:\WINDOWS\\Framework64\v3.5;C:\WINDOWS\\Framework64\v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\amd64Pathc:\fluent.inc\ntbin\win64;C:\Program Files (x86)\Microsoft Visual Studio9.0\VC\bin\amd64;C:\WINDOWS\\Framework64\v3.5;C:\WINDOWS\\Framework64\v3.5\Microsoft .NET Framework 3.5 SP1;C:\WINDOWS\\Framework64\v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files(x86)\Microsoft Visual Studio 9.0\Common7\Tools;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin;注:32系统可以安装6.0版本的VC,安装时选择“注册环境变量”即可,这样比较省事3、经过第2步的处理后,nmake的错误没了,但出现stdout等三个宏被重定义的问题按理不应该有这种错误,我目前没有很好的解决方法。
Fluent UDF compiled [UDF编译]错误解决办法
WinXP下使用UDF编译(compiled UDF)FLUENT UDF在interpreted时不需要vc++是可以的,但如果要用compiled,那么必须安装vc++了。
Fluent UDF 在compiled时点击build时出现错误:'nmake' 不是内部或外部命令,也不是可运行的程序。
点击load时则出现不可编译的错误:Opening library "libUDF"...Error: open_UDF_library: 系统找不到指定的文件。
Error Object: ()原因:环境变量有问题。
可能是安装vc++时没有勾选【设置环境变量】。
解决方法:需要设置环境变量,我的电脑-属性-高级-环境变量添加 include、lib、path和MSDevDir 环境变量,环境变量路径与安装vc++的路径有关。
如果不会设置,那么最简单的方法就是重装vc++ ,在安装过程的倒数第二步勾选设置环境变量(对于VC6.0)。
如果设置好环境变量了,build时不再出现/'nmake' 不是内部或外部命令,也不是可运行的程序。
/ 但点load时仍出现Opening library "libUDF"...Error: open_UDF_library: 系统找不到指定的文件。
Error Object: ()那么可能是因为没有加入头文件(Header files)UDF.h。
加入source files 和header files 后重新build 再load 就OK啦。
另外,在build是若出现错误:UDF_names.c(40) : fatal error C1071: unexpected end of file found in comment。
一种原因是:UDF定义了多个宏命,有一些不需要,加了 /* */ 引起的错误。
解决的方法就是删除这些多余的宏,只保留需要的。
UDF编译环境设置
UDF 编译环境设置随着用户求解的问题越来越复杂,使用fluent 软件难免使用编译型的UDF,编译型需要用户安装微软visual stadio C++ 开发软件,并做正确的环境变量配置。
否则则会出现如nmake不是内部命令的错误。
关于环境变量的设置,网络上已经有大量的实例,现介绍一种简单的环境变量配置方法:在fluent 的安装目录下找到udf.bat, 修改以下内容:set MSVC_DEFAULT=%ProgramFiles(x86)%\Microsoft Visual Studio 14.0if exist "%MSVC_DEFAULT%\VC\vcvarsall.bat" setMSVC=%MSVC_DEFAULT%if not "%MSVC%" == "" goto msvc_env110这个文件中还有其他类似的语句,但是都是重复查找不同的编译环境。
通过查找vcvarsall.bat,fluent才知道编译器位置。
如果不是就要靠运行msvc_env110,那就要手动设置环境变量了。
注意你安装了VS2015以后,在program(x86)中有Microsoft Visual Studio 14.0,Microsoft Visual Studio 12.0,Microsoft Visual Studio 11.0,其中只有一个是有效的,这个要仔细确认(一般只有一个文件夹是完整的安装,估计这样做是为了向下兼容性)。
修改完了这个路径以后就OK了。
环境变量配置完全以后,还会出现一些别的问题。
如编译UDF时会利用math.h, 注意编译这个文件有可能会出现很多问题。
如下:C:\Program Files (x86)\Microsoft Visual Studio14.0\VC\INCLUDE\math.h(483): error C2059: 语法错误:“常量”C:\ProgramFiles (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(483): errorC2143: 语法错误: 缺少“)”(在“/”的前面)C:\Program Files (x86)\Microsoft Visual Studio14.0\VC\INCLUDE\math.h(483): error C2143: 语法错误: 缺少“{”(在“/”的前面)C:\Program Files (x86)\Microsoft Visual Studio14.0\VC\INCLUDE\math.h(483): error C2059: 语法错误:“/”C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\math.h(483): error C2059: 语法错误:“)”如果光按fluent提示的查找错误,是不可能完成错误查找的,打开math.h因为你会看见483行是这样_Check_return_ _ACRTIMP double __cdeclcbrt(_In_ double _X);(求立方根函数)这个语句本身是没有什么问题的。
在64位操作系统中编译UDF
Fluent:在64位操作系统中编译UDF2011年09月04日星期日 19:01编译环境microsoft visual studio2010,fluent版本13.0,操作系统为windows 7 64bit。
测试代码采用UDF手册P394中关于边界条件的实例。
1、解释型经测试,无需任何配置,甚至不需安装vs2010,也能顺利编译成功。
2、编译型(1)按照32位系统中相同的编译方式。
出现如图2所示的错误提示,这通常是编译器未正确配置的原因。
图2 错误提示提示找不到 nmake文件,我们需要将其路径放入环境变量的path中,以便于系统搜索。
32位系统中解决办法:搜索nmake文件,将其所在路径添加至环境变量的path 中。
如图3所示,找到了两个nmake文件,我们将其路径全都加入到path中。
图3 两个nmake,其实我们只需要将第一个添加即可,但是为防万一,我们将两个路径全都加入到环境变量中然而在64位系统中问题依旧,如图4所示。
编译时找寻不到nmake文件。
原因在于我们采用的是64位系统。
因此还需另寻它法。
图4 依旧的问题,可能是操作系统导致的,因为我们在cmd中可以找到nmake(2)解决方案打开开始菜单中的visual studio 2010,我们可以看到如图5所示的菜单。
找到如图所示的x64 win64命令提示,点击运行它。
图5 visual studio2010的菜单我们需要找到fluent的真正路径,即fluent.exe所在的路径。
可以找到fluent 的快捷方式,点击右键选择属性,可以看到图6所示的对话框。
图6 记下框中fluent.exe的路径,后面的参数不需要好了,下面进入正题。
我们从命令行中启动fluent,记住命令行是从图5中红框中启动的。
如图7所示。
注意引号一定不能去掉,否则会提示找不到路径。
图7 启动fluent剩下的工作就没什么好说的了,与32位系统完全一致。
编译后出现提示如图8所示。
ANSYS14.5在Win7 64位环境下的UPFs二次开发编译连接
点击“开始\ANSYS 14.5\Utilities\ANS_ADMIN 14.5”,弹出如图 2.2 所示的对话框。
图2.2 ANS_ADMIN 14.5编译连接对话框
点击“Relink ANSYS”,弹出如图 2.3 所示的窗口。
图2.3 弹出DOS窗口 在图 2.3 中也说明上述两种编译连接的方法。在弹出如图 2.3 所示的窗口,按任意键后, 弹出“Do you want to link theWind Turbine Aeroelastic library with Mechanical APDL?<Y or N>”,如图 2.4 所示。
ANSYS14.5 在 win7 64 位环境下的 UPFs 二次开发编译连接
郑恒 中南大学 湖南长沙
1 UPFs 二次开发安装
1.1 ANSYS 14.5 的安装
在安装 ANSYS 14.5 时,ANSYS 在默认的情况下是不安装 UPFs 二次开发相关文件,如 图 1.1 所示,需要用户点选“ANSYS Customization Files”选项才能利用 UPFs 进行二次开发, 其他版本的 ANSYS 在默认情况下也是不安装这些文件的,需要用户在安装时注意自行点选 安装。之前我已经安装了 ANSYS14.5,后来我直接卸载了重新安装,重新安装时只需要用 户点选“ANSYS Customization Files”选项,其余的安装和以往的安装过程是一样的。
2003, 2005, 2008 2003, 2005, 2008 2005, 2008, 2010 2008, 2010, 2012
在安装 Visual Studio 2008 和 Intel Fortran11.1.038 时,都采用默认安装方式直接安装在 C 盘,从而可以无需进行系统环境变量的设置,就可以编译成功。
fluent64位并行设置1(seriel
fluent64位并⾏设置1(seriel fluent 的udf可编译)
第⼀次在⽀持64位机器上,安装有windows xp 64位机器上进⾏fluent64位并⾏设置,遇到了很多困难。
这是我以前在32机器上运⾏fluent没有遇到过的,由于64位机器上是双cpu双核双线程,计算速度⼤⼤提⾼,⾮常适⽤于我的动⽹格计算要求,所以才尝试在64位机器上进⾏fluent并⾏计算的。
没想到fluent64的安装和设置路上困难重重,现在把⼀些已经解决的问题和发现的问题写下来与⼤家共享,⼀起学习进步。
⾸先是64位vc的兼容问题:
vc64位安装的问题。
经过两天的调试终于在serial fluent上能进⾏udf编译了。
具体设置是安装⽀持64操作系统的vc,⽐如visio studio 2005,注意不是express版本的,我装的是正式版的。
在安装过程中,选择⾃定义安装,在安装选项vc++树⽬录点击开,勾选上64位编译器,然后正常安装。
安装完后,就可以运⾏udf编译了,进⼊*.c的⽬录,在命令⾏窗⼝,进⼊‘安装⽬录’\libudf\win64\3d下,输⼊nmake命令后,就再也不会提⽰“nmake不是内部命令也不是外部命令了,以及config.h中的{,:之类的出错提⽰了”。
搞了两天才弄好,于是开始整并⾏计算,进⼊fluent 并⾏版窗⼝后,⼀阵⼦划分⽹格分区后,⼜出现了新的问题?。
[原]使用64位的编译工具进行编译
[原]使⽤64位的编译⼯具进⾏编译原总结v s msbuild ho w-to缘起最近在编译项⽬的时候总是报虚拟内存不⾜(项⽬中使⽤了⼤量的模板)。
⼀般情况下,vs会使⽤32位的编译⼯具进⾏编译,⽤64位的编译⼯具应该能解决类似的问题。
本以为是⼀件挺简单的事,但是没想到遇到不少坑,本⽂记录了折腾的过程,希望对有类似需求的⼩伙伴有所帮助。
尝试1:在vs中查找相关设置在低版本的vs中找了很久也没有找到相关选项,看来vs只能使⽤默认的32位编译器进⾏编译。
实在是不太合理啊!不过确实没找到,如果有⼩伙伴知道怎么设置,欢迎留⾔告知。
{% note info %}vs2019(V16.1)终于添加了相关的设置选项。
{% endnote %}尝试2:使⽤msbuild我们知道其实vs是调⽤msbuild进⾏编译链接的(msbuild会调⽤CL.exe进⾏编译,调⽤link.exe进⾏链接)。
我们可以直接使⽤msbuild进⾏⽣成。
帮助⽂档可以通过msbuild -h或者来查看msbuild的命令⾏参数。
但是,貌似没有哪个参数是告诉我们如何使⽤64位的编译⼯具进⾏编译的。
继续搜官⽹指南1在微软官⽅找到⼀篇参考⽂档,根据⽂档中的的描述,尝试过程如下:我们发现,编译时使⽤的是CL.exe ,链接时使⽤的是link.exe 。
这两个⽂件都是⼦⽬录\bin\HostX86\x64下的。
我们看下这两个程序是32位的还是64位的。
我们发现这个⼦⽬录下的CL.exe 和link.exe 都是32位的。
what 这是什么情况?为什么按官⽅⽂档进⾏操作,结果还是使⽤的32位的。
暂时先不追究了。
继续搜找到了,根据其中的 msbuild /p:PreferredToolArchitecture=x64成功调⽤了64位的CL.exe 和link.exe 。
PreferredToolArchitecture 是什么?官⽅参考⽂档中有⼀个,介绍了⼀些msbuild 的内部选项,其中有关于关键字PreferredToolArchitecture 的介绍。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Fluent:在64位操作系统中编译UDF
2011年09月04日星期日 19:01
编译环境microsoft visual studio2010,fluent版本13.0,操作系统为windows 7 64bit。
测试代码采用UDF手册P394中关于边界条件的实例。
1、解释型
经测试,无需任何配置,甚至不需安装vs2010,也能顺利编译成功。
2、编译型
(1)按照32位系统中相同的编译方式。
出现如图2所示的错误提示,这通常是编译器未正确配置的原因。
图2 错误提示
提示找不到 nmake文件,我们需要将其路径放入环境变量的path中,以便于系统搜索。
32位系统中解决办法:搜索nmake文件,将其所在路径添加至环境变量的path 中。
如图3所示,找到了两个nmake文件,我们将其路径全都加入到path中。
图3 两个nmake,其实我们只需要将第一个添加即可,但是为防万一,我们将两个路径全都加入到环境变量中
然而在64位系统中问题依旧,如图4所示。
编译时找寻不到nmake文件。
原因
在于我们采用的是64位系统。
因此还需另寻它法。
图4 依旧的问题,可能是操作系统导致的,因为我们在cmd中可以找到nmake
(2)解决方案
打开开始菜单中的visual studio 2010,我们可以看到如图5所示的菜单。
找到如图所示的x64 win64命令提示,点击运行它。
图5 visual studio2010的菜单
我们需要找到fluent的真正路径,即fluent.exe所在的路径。
可以找到fluent 的快捷方式,点击右键选择属性,可以看到图6所示的对话框。
图6 记下框中fluent.exe的路径,后面的参数不需要
好了,下面进入正题。
我们从命令行中启动fluent,记住命令行是从图5中红框中启动的。
如图7所示。
注意引号一定不能去掉,否则会提示找不到路径。
图7 启动fluent
剩下的工作就没什么好说的了,与32位系统完全一致。
编译后出现提示如图8所示。
图8 编译及加载成功,大功告成
这个UDF实例是关于抛物线速度入口的,我们可以查看结果,如图9,图10所示,图中可以看出与我们的UDF一致。