Moving Mesh
论坛搜索:

主页 » Software » AFEPack » ========AFEPack在Mac OS X上的安装方法========
icon10.gif  ========AFEPack在Mac OS X上的安装方法======== [帖号 #343] 五, 02 十一月 2007 12:43 下一楼
zybx  现在不在线 zybx
发帖数: 49
注册时间: 七月 2007
Member
1 从 Apple 网站下载或直接从 OSX 的系统盘上安装 xcode 工具
安装之后所有 gcc 的工具都有了

2 去 GNU 下载并安装最新的 automake 和 autoconf 工具
我用的是 automake 1.9 和 autoconf 2.6
虽然安装完 xcode 后就已经有了 automake 和 autoconf 但是这个版本的 automake 不能顺利配置 AFEPack

3 下载并安装libboost库

4 下载 deal.II 6.0 解压缩后通过下面两条命令来安装
sudo ./configure
sudo make
注意 deal.II 5.2 以及之前的版本可能无法直接通过编译

5 按照 AFEPack 教程将 deal.II 的 base lac 的 include 和 lib 文件链接到 /usr/include 和 /usr/lib 下面

6 解压缩 AFEPack 并执行下列命令
sudo aclocal-1.9
sudo automake-1.9
sudo autoconf
注意前两个指令需要指定版本号 1.9

7 这一步需要修改一些 Makefile 脚本
首先到 AFEPack/library 目录下修改 Makefile.1 文件
在第 20 行的 $(CXX) 后加入 -dynamiclib -lbase -llac 如果看到 -shared 选项则删去
然后到 AFEPack/template 目的下修改 Makefile.bas_fun 文件
在第 21 行的 $(CC) 后加入 -dynamiclib -lstdc++ 如果看到 -shared 选项则删去
然后到 AFEPack/template 目的下修改 Makefile.geometry 文件
在第 25 行的 $(CC) 后加入 -dynamiclib 如果看到 -shared 选项则删去

8 在 AFEPack 目录执行下面的命令
sudo ./configure
sudo make
这样 AFEPack.so 和各类 template 还不一定能够编译出来
首先定义 deal.II 6.0 的对象需要使用名字空间了
所以需要在 AMGSolver.h Miscellaneous.h SparseMatrixTool.h 文件中加入
using namespace dealii;
加入位置应该在那些 #include ???? 之后
还有一件比较郁闷的事情
因为 deal.II 6.0 的某个成员函数的返回类型由 const unsigned int * 变成了 const size_t *
所以如果遇到该类错误就手动修改源码
需要修改的地方不多不少
还是可以忍受的
之后除了 example 以外的东西应该都能编译出来了

9 链接相应的头文件和库文件
注意 OSX 系统下共享库的后缀是 .dylib
所以在做链接时最好链接成 libAFEPack.dylib

X 还有些后事要处理
比如设置 AFEPACK_TEMPLATE_PATH 之类的
我遇到的问题就是 FEMFunction 的 write*Data 之类的函数无法正常链接
可以从 FEMSpace.cpp 中直接把对应的代码 copy 出来放到自己的源文件里
因为涉及引用源码
最好申明一下版权 Smile

[更新: 五, 02 十一月 2007 12:54]

回复: ========AFEPack在Mac OS X上的安装方法======== [帖号 #344 是对于帖子 #343 的回复 ] 日, 04 十一月 2007 01:41 楼上下一楼
hghdd  现在不在线 hghdd
发帖数: 83
注册时间: 七月 2007
Member
感谢 zybx 的工作 Smile
回复: ========AFEPack在Mac OS X上的安装方法======== [帖号 #1122 是对于帖子 #343 的回复 ] 五, 23 七月 2010 12:37 楼上下一楼
tenger  现在不在线 tenger
发帖数: 34
注册时间: 七月 2008
Member
在 mac 下尝试安装了下 AFEPack ,但是看着这个帖子也装不来 Embarassed ,装 deal.II 的时候就遇到了问题, ./configure 这一步就出了问题,提示的信息似乎跟 boost 库有关,我不清楚上面说的下载并安装 libboost 库是指的啥,我按照 AFEPack 的最新安装说明,拷贝了 boost 到 /usr/include 下面去了,但是有问题。用的系统是10.6,装了 Xcode 也装了新的 automake 跟 autoconf ,我不太清楚怎么装才是正确的,都是这么输了些命令
./configure
make
sudo make install
是不是 mac 下面安装会有点区别, mac 我没咋接触过。
哪位大佬给点更详细的说明呢?谢谢! Smile
回复: ========AFEPack在Mac OS X上的安装方法======== [帖号 #1123 是对于帖子 #1122 的回复 ] 六, 24 七月 2010 02:13 楼上下一楼
zybx  现在不在线 zybx
发帖数: 49
注册时间: 七月 2007
Member
libboost就是Boost C++库,按照boost的编译安装说明做就行了,有脚本的。。我是安装到了/usr/local下面,Mac操作和Linux基本一样,如果你不熟悉的话,推荐通过MacPorts或者Fink来安装各类开源包

[更新: 六, 24 七月 2010 02:16]

回复: ========AFEPack在Mac OS X上的安装方法======== [帖号 #1124 是对于帖子 #1123 的回复 ] 六, 24 七月 2010 11:01 楼上下一楼
tenger  现在不在线 tenger
发帖数: 34
注册时间: 七月 2008
Member
好的,我再试试,谢谢!
回复: ========AFEPack在Mac OS X上的安装方法======== [帖号 #1129 是对于帖子 #1123 的回复 ] 三, 28 七月 2010 05:09 楼上下一楼
tenger  现在不在线 tenger
发帖数: 34
注册时间: 七月 2008
Member
装了 deal.II 6.3.1,头和库分别链接到/usr/include和/usr/lib下面,但是遇到跟前面一样的问题是找不到 deal.II 的库。  ./configure 之后显示如下:
checking build system type... i386-apple-darwin10.4.0
checking host system type... i386-apple-darwin10.4.0
checking target system type... i386-apple-darwin10.4.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... none
checking whether ln -s works... yes
checking for ar... ar
checking for doxygen... no
checking for perl... perl
checking for sed... sed
checking for gmake... no
checking for make... make
checking if optimize support was requested... yes
checking how to run the C++ preprocessor... g++ -E
checking for dlfcn.h... yes
checking for deal.II header files... yes
checking if shared support was requested... yes
checking if thread support was requested... yes
checking for library -ldl... yes
checking for deal.II library... no
configure: error: deal.II library not found
但是我试了下,随便写了个 test.cc
然后 g++ test.cc -lbase -llac 是可以编译通过的,为啥AFEPack找不到呢?
回复: ========AFEPack在Mac OS X上的安装方法======== [帖号 #1133 是对于帖子 #1129 的回复 ] 四, 29 七月 2010 21:00 楼上下一楼
hghdd  现在不在线 hghdd
发帖数: 83
注册时间: 七月 2007
Member
如果死活提示找不到,可以试试下面这个 BT 的招数 -_-!!!

打开 configure 文件, 把里面关于检测 deal.II 的库文件的那段注释掉。

其实只要你把 liblac* libbase* 放到了 /usr/lib 下面了,理论上讲当程序被编译连接成可执行文件的时候, 是可以找到这两个库文件的。 不知道是不是 configure 文件本身的问题,导致找不到这两个文件的。

你试试这个方法, BT 了点儿,希望能解决你的问题。

回复: ========AFEPack在Mac OS X上的安装方法======== [帖号 #1134 是对于帖子 #1133 的回复 ] 五, 30 七月 2010 00:56 楼上下一楼
tenger  现在不在线 tenger
发帖数: 34
注册时间: 七月 2008
Member
找到了,呵呵,问题出在新版的 deal.II 编译 base lac 的时候还需要个啥 tbb,需要把 tbb 的头文件放到搜索路径当中。tbb 在那个 contrib 文件夹下面
回复: ========AFEPack在Mac OS X上的安装方法======== [帖号 #1135 是对于帖子 #1134 的回复 ] 五, 30 七月 2010 23:03 楼上下一楼
hghdd  现在不在线 hghdd
发帖数: 83
注册时间: 七月 2007
Member
恭喜 Smile
回复: ========AFEPack在Mac OS X上的安装方法======== [帖号 #1136 是对于帖子 #1135 的回复 ] 六, 31 七月 2010 12:34 楼上
tenger  现在不在线 tenger
发帖数: 34
注册时间: 七月 2008
Member
谢谢。 Smile

还有个地方需要改一下

7.首先到 AFEPack/library 目录下修改 Makefile.1 文件
在第 20 行的 $(CXX) 后加入 -dynamiclib -lbase -llac 如果看到 -shared 选项则删去

需要多加个 -ltbb

然后第8点以后的问题不会再出现了。
下一个主题:求助:关于标量有限元函数与向量的散度的内积?
上一个主题:如何求二阶导来着?
转至论坛:
  


当前时间: 六 9月 4 14:53:45 EDT 2010

生成本页面共花费时间:0.03142 秒。
.:: 联系 :: 主页 ::.

Powered by: FUDforum 2.8.1.
Copyright ©2001-2009 FUDforum Bulletin Board Software