我正在打包一个 deb 文件,并且配置脚本没有检查是否需要 -fPIC。因此在 amd64 上构建失败(因为 PIC 是强制性的)。
如果需要 -fPIC,我如何在 Makefile 中确定或在 debian/rules 中更好地确定?
uname --hardware-platform
可能不是您想要的,因为它可能与您安装的库和可执行文件的体系结构非常不同(想想安装在 x86_64 硬件上的 i386 内核和运行时),而且在 Linux 下hardware-platform
通常最终会成为“ ”。unknown
一个打包好的 deb 可能应该dpkg-architecture -qDEB_HOST_ARCH
用于此(示例输出:“ amd64
”、“ i386
”、“ armel
”等),以便在有人想要交叉编译时正确覆盖它。
它是uname --hardware-platform
。这返回x86_64
:
ifeq ($(shell uname --hardware-platform), x86_64)
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif