我正在打包deb文件,配置脚本没有检查是否需要-fPIC。因此,amd64的构建失败(因为PIC是强制性的)。
如果需要-fPIC,如何在makefile中确定或更好地在debian / rules中确定?
答案 0 :(得分:2)
uname --hardware-platform
可能不是你想要的,因为它可能与你安装的库和可执行文件的架构(想想在x86_64硬件上安装的i386内核和运行时)不同,也因为{{ 1}}通常最终会在Linux下成为“hardware-platform
”。
一个包装良好的deb可能会使用unknown
(示例输出:“dpkg-architecture -qDEB_HOST_ARCH
”,“amd64
”,“i386
”等,所以如果有人想要交叉编译,它会被正确覆盖。
答案 1 :(得分:0)
是uname --hardware-platform
:
ifeq ($(shell uname --hardware-platform), 86_64)
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif