1, 关于下载资源
之前一直在rose compiler官网上下载,但是那份程序2013年之后就停止更新了,而且近几天突然官网上不去了。
在立博师兄的指点下,知道在github上下载,rose后续的项目更新都在gitHub上,我使用的是:
git clone https://github.com/rose-compiler/edg4x-rose.git
据立博师兄说,rose项目bug很多,目前这个最新版本的也有。不过bug主要是在对c++工程项目的分析上,主要是template。
如果只针对C程序,做些stencil计算的处理,问题不大。
2,configure
1)安装过程和Rose installation guide(July 8, 2013)类似,不过第一步需要运行build脚本生成configure文件。
在Linux下(RHEL6.3),可以直接运行build脚本。但是我希望能在我的macbook air上运行,我使用的是macport安装各种依赖库,路径有些问题。
build第278行,alcohol的头文件路径需要修改成-I /opt/local/share/aclocal,这样在mac下就可以成功运行build脚本。
2)configure过程中,遇到说不识别当前的apple操作系统。这是因为我目前使用的是10.10,而configure脚本中最大支持到darwin11*,即10.7。
所以在configure脚本第8006行添加:
darwin14*)
OS_release=10.10
3)找不到java
8381 # George Vulov (Aug. 25, 2010) On OS X the binaries found under /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/
8382 # aren't the true Java binaries; instead they check the java preferences app and then instantiate whatever version of Java
8383 # is specified there. The actual java binaries are located in /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
目前我还不大懂这段话是不是和具体mac os版本有关,但是10.10中我的确发现Versions/Current/Command下面有相应地二进制文件,而没有CurrentJDK文件夹。需要进行相应改动。linux机器的路径没错。
8467行 JAVA_BIN=${JAVA_PATH}/bin去掉/bin,那是linux下的命名方式
3)找不到gfortran
自带的gcc(随xcode安装)里面不带gfortran,通过macport安装gcc-4.9,遇到以下问题:
checking whether your GCC version is supported by ROSE (4.0.x - 4.4.x)... configure: error: in `/Users/xsz/Documents/GPU/rose-0.9.6a/install_tree':
configure: error: your GCC 4.9.1 version is currently NOT supported by ROSE. GCC 4.0.x to 4.4.x is supported now.
4)boost版本不对
configure: error: Unsupported version of Boost: '105600'. Only 1.45 to 1.47 is currently supported.
去官网下载1.47,编译安装
5)configure 中途的ln问题
408 Generating /Users/xsz/Documents/GPU/rose-0.9.6a/install_tree/include-staging/gcc_HEADERS/rose_edg_required_macros_and_functions.h
409 processing header file directory /opt/local/include to be mapped to /Users/xsz/Documents/GPU/rose-0.9.6a/install_tree/include-staging/gcc_HEADERS/hdrs1
410 /opt/local/include needs 15 change(s)
411 /opt/local/include /Users/xsz/Documents/GPU/rose-0.9.6a/install_tree/include-staging/gcc_HEADERS/hdrs1 needs to be copied and modified
412 ln: illegal option -- -
413 usage: ln [-Ffhinsv] source_file [target_file]
414 ln [-Ffhinsv] source_file ... target_dir
415 link source_file target_file
mac默认的bash不支持ln 命令不支持--force参数,需要用-f替代修改config/create_system_headers第67行,
67 find "$src_dir/." -type f -a -print | sed -n "s|^${src_dir}\\(.*\\)\$|ln -s --force '&' '$target_dir/\\1'|p" | sh -s
--force变成-f参数
6) 找不到termio.h
../../../edg4x-rose/src/util/sawyer/CommandLine.C:26:20: error: termio.h: No such file or directory
修改为termios.h
7)最后到了wget edg binary出错,这几天rosecompiler.org一直登不了,不过后续应该问题不大,毕竟我还是成功在RHEL 6.3上装过rose-0.9.5a的
幸好我的linux服务器上装过一个rose版本,否则现在无rose可用了。。。
最近一直和女朋友吵架,装个rose还装了一天,真郁闷。。