在尝试从源代码安装程序时,我发现它将库安装到/ usr / lib / [program] /,因为这是在64位系统上,所以它不起作用。我不得不将库复制到/ usr / lib64 / [program]。请注意,库文件是python,因此与体系结构无关。
Makefile有:
libdir = /usr/lib
如何在64位系统上libdir
等于lib64
,在32位系统上lib
?{/ p>
答案 0 :(得分:7)
试试这个:
MACHINE := $(shell uname -m)
ifeq ($(MACHINE), x86_64)
libdir = /usr/lib64
endif
ifeq ($(MACHINE), i686)
libdir = /usr/lib
endif
答案 1 :(得分:4)
这是一个很好的解决方案,但是如果你遇到需要设置更多变量的情况,你可以考虑使用构造的变量名。我发现它们更容易阅读,但YMMV。
libdir.x86_64 = /usr/lib64
libdir.i686 = /usr/lib
MACHINE := $(shell uname -m)
libdir = $(libdir.$(MACHINE))