- 积分
- 2274
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-7-10
- 最后登录
- 1970-1-1
|
发表于 2011-8-15 22:40:04
|
显示全部楼层
残月 发表于 2011-8-15 21:49
但是 已经有 makelocalrc 这个文件阿。。麻烦你能说得再详细些吗?谢谢了
http://blog.sina.com.cn/s/blog_6dc085820100lbl3.html
引用 makelocalrc(2010-09-13 21:57:04)转载标签: pgilinuxgcc 分类: Linux
引用
Echo 的 makelocalrc
受系统安装的gcc编译器版本的影响,安装pgi有时候会遇到,例如我在安装pgi7.0-5时出现 ERROR: unknown glibc version (2.4),或者还有朋友遇到安装完毕后用pgf90编译fortran程序提示找不到crtbegin.o文件,这属于同一问题。
具体原因:
由于安装文件中的makelocalrc不能正确生成localrc,所以pgi不能正常工作,这与使用哪个发行版无关.
解决方案:
以我的系统为例,我用ubuntu edgy,安装pgi 7.0
1.手动编写一个文本文件localrc,放在/usr/pgi/linux86-64/7.0/bin目录下
set LFC=-lgfortran;
set LDSO=/lib64/ld-linux-x86-64.so.2;
set GCCDIR=/usr/lib/gcc/x86_64-redhat-linux/4.1.2;
set GCCINC=/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include;
set G77DIR="";
set OEM_INFO=64-bit target on x86-64 Linux;
set LOCALRC=YES;
set THROW=__THROW=;
set EXTENSION=__extension__=;
set LC=$if(-Bstatic,-lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc, -lgcc -lc -lgcc);
# GLIBC version 2.7
# GCC version 4.1.2
export PGI=/usr/local/pgi;
# makelocalrc executed by root 2008年 08月 17日 星期日
这一方案简单有效
2.用如下文件替换安装目录中的makelocalrc文件,然后重新安装(该文件需要设置为可执行)
(忘了抄的哪位高手并结合自己修改得到)
修改 /usr/pgi/linux86-64/7.0/bin/makelocalrc:
..............................................
################################evision
GLIBC_VERSION=2.7 #$x
else
GLIBC_VERSION=2.7 ## 原来空的
#####################################
................................................
}####################adding the module
2.7 )
glibc=27
LIB=lib-linux86-g232
LIBLF=$LIB-lf
INC=include-g23
;;
############################
2.* )
echo "Unknown glibc version ($GLIBC_VERSION); treating like 2.4"
glibc=232
LIB=lib-linux86-g232
LIBLF=$LIB-lf
INC=include-g23
;;
* )
echo "ERROR: unknown glibc version ($GLIBC_VERSION)."
quit 1
;;
......................................................
##########################################################revsion
#gccbase=`"$gcc" -print-search-dirs | sed -e 's/^install: //' -e 's/\/$//' -e 1q`
#if test -d "$gccbase"$subdir ; then
# GCCDIR="$gccbase$subdir"
#fi
#gccversion=`"$gcc" -dumpversion`
##########################################################revsion
libgcc=`$gcc -print-libgcc-file-name`
gccbase=`dirname $libgcc`
GCCDIR="$gccbase$subdir" ##自己加的
gccversion=`basename $gccbase`
###################################################################
...............................
如果用的64 bit的系统,修改完保存后还需要做如下工作:
(1)把/usr/local/pgi/linux86/7.0/include-g* 拷贝到/usr/local/pgi/linux86-64/7.0/下
(2)把/usr/local/pgi/linux86/7.0/lib/libpgbind_real.a 拷贝/usr/local/pgi/linux86-64/7.0/libso/
(3)把/usr/local/pgi/linux86/7.0/lib/libpgbind_real.so 拷贝到/usr/local/pgi/linux86-64/7.0/libso/
(4) ./makelocalrc -x /usr/local/pgi/linux86-64/7.0/bin
ok,大功告成,期待的locarc终于生成了,pgf90也能顺利运行了
GOOD LUKY
关于/usr/bin/ld: cannot find -lpgc的问题:
到PGI的安装路径下找到比较新的libpgc.so, ln或者copy到PGI的lib中
|
评分
-
查看全部评分
|