WINDOWS XP 操作系统下NETGEN4.9.13编译方法
1 NETGEN4.9.13源码下载
地址:http://ncu.dl.sourceforge.net/project/netgen-mesher/netgen-mesher/4.9.13/netgen-4.9.13.zip
2 基本环境要求和设置
2.1 基本环境要求
1) Microsoft Visual C++ 2008,任何一个版本都可以。
2) Microsoft Windows SDK。
3) Visual C++ 2008 Redistributable Package。
这三个,大家只要下载Microsoft Visual C++ 2008并安装,就都会有了,不用另外去下载。
2.2 Netgen 特殊要求
1) Tcl/Tk, Tix, Togl。这四个库是生成NETGEN的图形用户界面所必不可少的。在NETGEN地官方网站上提供了包含这四个库的预编译压缩文件包,可在下面地址下载http://ncu.dl.sourceforge.net/project/netgen-mesher/netgen-mesher/Additional Files/MSVC2008_Libs/TclTkTixTogl-w32.zip
这个包里面包含了下面文件:
a) Tcl v8.5 (32-bit)
b) Tk v8.5 (32-bit)
c) Tix v8.4.3 (32-bit)
d) Togl v1.7 (32-bit) (注意: 目前NETGEN只适用1.7及以前版本)
2) POSIX Thread Library。这是一个多线程库,当用C++ 2008 Express Editions 进行编译时就需要用到这个了,其作用是给NETGEN提供多线程运行功能。其预编译版本可在下面网址下载:http://ncu.dl.sourceforge.net/project/netgen-mesher/netgen-mesher/Additional Files/MSVC2008_Libs/pthread-w32.zip
3) OpenCascade Library。OpenCascade 是一个非常有名的开源几何图形软件,在这里用来为NETGEN提供STEP、IGES、BREP三种格式的输入功能。可以在下面地址下载:Open CASCADE Technology, 3D modeling & numerical simulation,注意:请下载6.2或6.3版本,因为NETGEN已经为这两个版本做过测试,用别的可能会出错。
2.3 文件夹结构设置
为减少编译连接过程中的错误,NETGEN推荐我们使用如下特定的文件夹结构:
这是NETGEN源码C++工程文件中默认的文件夹路径,其中,<Netgen_root>可以是任何名字,但下面的子文件夹必须如上图所示。
建立这样一个路径的具体操作如下:
1) 为NETGEN安装创建一个根文件夹<Netgen_root>
2) 在这个文件夹内为扩展库创建子文件夹ext_libs.
3) 将上面下载好的TclTkTixTogl-w32.zip(对64位机来说是TclTkTixTogl-w64.zip)解压到ext_libs中,则系统自动创建tcl文件夹,其内部文件夹结构自动满足编译需求。
4) 对于使用C++ 2008 Express Editions的用户,下载pthread-w32.zip(对64位机用户是pthread-w64.zip)并将其解压到ext_libs中,自动创建pthread_win32(64)文件夹。
5) 最后,将下载好的NETGEN代码压缩包解压到根目录下,自动创建netgen文件夹。
下面是按照上述步骤创建文件夹的一个例子:
3 编译和链接
按上述步骤设置好文件夹路径后,按下述方法进行编译和链接。
1) 用MSVC++2008打开netgen/windows文件夹下的netgen.sln文件。
2) 点击“生成解决方案”进行编译和链接。
3) 链接成功后,会在netgen/windows文件夹下生成.bin文件夹,在这个文件夹中会有一个netgen.exe文件,点击即可执行。有时这个.bin文件夹会在netgen文件外单独生成一个文件来保存。如上图所示的:netgen-instOCC_win32.
4) 如果按照上述文件夹设置来进行编译和链接,则应该会一次性成功,且不会有任何错误和警告发生。
4 执行时所需设置
按上述方法成功生成netgen.exe后,点击执行还会发生很多错误,会导致图形用户界面无法出现或菜单栏命令缺失,如下所示:
如上所示,主要是tk和tix初始化失败,找不到相应的.tcl或.dll文件。这是因为NETGEN在生成图形用户界面(GUI)时使用的是OPENCASCADE所提供的第三方库文件,若OPENCASCADE中所自动包含的库文件与netgen所指定的库文件不同,就会发生错误。故需将上述tcl文件夹中的tix8.4.3和tk8.5复制到opcascade文件夹下\Program Files\opencascade\3rdparty\win32\tcltk\lib文件夹中。同时,将其保存到C:\WINDOWS\lib文件夹下。这样设置完成后,执行应该不会有任何错误发生了。成功执行后界面如下所示:
5 注意事项
1) 现在NETGEN提供了安装版本,下载完成后双击即可安装。但是在编译连接时要将安装版本删除,否则会发生引用库文件时的版本冲突。
2) 与安装版本相比,按上述方法连接成功的可执行文件在执行时界面中还缺少Demo和Solve两个辅助功能菜单,实现的是一些统计等辅助功能。有编译成功这两个菜单的请分享一下方法。
3) 点击下载NETGEN用户手册和NETGEN算法说明文件。
编译连接太浪费时间,对此我深有体会,所以总结了这个,希望对使用这个软件做研究的人有帮助,不对或者不完善的地方欢迎指正,谢谢。