我将与您分享我的问题:
基本上,我需要在运行rhel fedora 6.5的集群中编译一个工具(Freebayes:https://github.com/ekg/freebayes),而我没有sudo权限。
当我使用'make'进行编译时,会出现此错误:
/usr/bin/ld: cannot find -llzma
collect2: ld returned 1 exit status
make[4]: *** [libhts.so] Error 1
make[4]: Leaving directory `/home/gspirito/freebayes/SeqLib/htslib'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/gspirito/freebayes/SeqLib'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/gspirito/freebayes/SeqLib'
make[1]: *** [../SeqLib/src/libseqlib.a] Error 2
make[1]: Leaving directory `/home/gspirito/freebayes/src'
make: *** [all] Error 2
这应该意味着它找不到liblzma.so,实际上,如果我运行“ locate liblzma.so”,它就会给我以下信息:
/usr/lib64/liblzma.so.0
/usr/lib64/liblzma.so.0.0.0
liblzma.so位于我家中的文件夹中(例如:/ home / usr / packages / lib),我已经将其添加到.bashrc文件中的LD_LIBRARY_PATH中。 (导出LD_LIBRARY_PATH = / home / gspirito / packages / lib:/ usr / lib64 /:$ LD_LIBRARY_PATH)。 还有C_INCLUDE_PATH和CPLUS_INCLUDE_PATH。
我搜索了一个解决方案,在许多论坛中,建议像这样链接两个文件:
ln -s /usr/lib64/liblzma.so.0 /home/usr/packages/lib/liblzma.so.0
但是我没有这样做的权限。
我曾考虑过更改Makefile,以使其在我的/ home中查找库,但是我对此没有经验。这是我的Makefile:
all: vcflib/Makefile log
cd src && $(MAKE)
wbamtools: vcflib/Makefile log
cd src && $(MAKE) -f Makefile.bamtools
log: src/version_git.h
wget -q http://hypervolu.me/freebayes/build/$(shell cat src/version_git.h | grep v | cut -f 3 -d\ | sed s/\"//g) &
src/version_git.h:
cd src && $(MAKE) autoversion
touch src/version_git.h
vcflib/Makefile:
@echo "To build freebayes you must use git to also download its submodules."
@echo "Do so by downloading freebayes again using this command (note --recursive flag):"
@echo " git clone --recursive git://github.com/ekg/freebayes.git"
@error
debug:
cd src && $(MAKE) debug
install:
cp bin/freebayes bin/bamleftalign /usr/local/bin/
uninstall:
rm /usr/local/bin/freebayes /usr/local/bin/bamleftalign
test:
cd test && make test
clean:
cd src && $(MAKE) clean
rm -fr bin/*
.PHONY: all install uninstall clean test
我如何更改它以使其在/ home / usr / packages / lib /中寻找-liblzma?
非常感谢愿意回答的任何人。