我需要通过CPAN安装Perl PDL library作为非root用户。如何告知CPL的CPAN安装使用我的FFTW路径?
CPAN非root工作得益于这太问题:How can I use CPAN as a non-root user?
现在,PDL依赖于FFTW库。很明显,我的系统管理员安装了32位版本,当我需要这台机器的64位。
我此基础上CPAN中出现以下错误信息安装:
gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic FFTW.o -o ../../blib/arch/auto/PDL/FFTW/FFTW.so \
-lm -L/lib -L/usr/lib -L/usr/local/lib -L/usr/local/lib64 -L/lib64 -L/usr/lib64 -ldfftw -ldrfftw \
/usr/bin/ld: skipping incompatible /usr/local/lib/libdfftw.a when searching for -ldfftw
/usr/bin/ld: skipping incompatible /usr/local/lib/libdfftw.a when searching for -ldfftw
/usr/bin/ld: cannot find -ldfftw
现在,我已经成功地安装FFTW在$HOME/lib
,确实libdfftw.a
。
问题是我无法让这个gcc编译实例使用本地安装的副本。
我曾尝试以下:
- 在.bash_profile中设置LD_LIBRARY_PATH,是的,它出口 - 没有骰子。
- 继How can I set library and include paths for Makefile.PL for a single installation?,我在
cpan
设置o conf makepl_arg
到:LIBS=-L/homedir/lib INC=-I/homedir/include
- 仍然没有骰子 - 我做了同步骤但
o conf mbuild_arg
---同样,没有骰子。
这些尝试均未对上述gcc
行产生任何影响;没有用-L
标志指定的其他路径。
还有什么我可以尝试在cpan
得到这个编译命令来引用我的fftw副本?
更新1
我要补充一点,之前我做任何改动,makepl_arg
是:
makepl_arg [INSTALLDIRS=site]
因此,我设置makepl_arg
到:
makepl_arg [INSTALLDIRS=site LIBS=-L/homedir/lib INC=-I/homedir/include]
我已设置这些配置没有做o conf commit
以允许实验。我应该提交这些更改吗?
更新2
我看到那些-L
标志在上面gcc
线是由Makefile,这本身似乎是由MakeMaker的进行这我相信正在读取文件“Makefile.PL”
仔细检查您在步骤2中做了什么,请。当你执行'make conf_arg'时,你看到'LIBS = -L/homedir/lib INC = -I/homedir/include'吗? – ikegami 2013-05-14 00:53:02
(步骤3使用了'mbuild_arg'不正确的值,但PDL使用'makepl_arg',所以不是一个问题。) – ikegami 2013-05-14 00:55:14
我只是试图再次池上,但不幸的是问题仍然存在。 – EMiller 2013-05-14 01:20:28