1

我正在打包一个 deb 文件,并且配置脚本没有检查是否需要 -fPIC。因此在 amd64 上构建失败(因为 PIC 是强制性的)。

如果需要 -fPIC,我如何在 Makefile 中确定或在 debian/rules 中更好地确定?

4

2 回答 2

2

uname --hardware-platform可能不是您想要的,因为它可能与您安装的库和可执行文件的体系结构非常不同(想想安装在 x86_64 硬件上的 i386 内核和运行时),而且在 Linux 下hardware-platform通常最终会成为“ ”。unknown

一个打包好的 deb 可能应该dpkg-architecture -qDEB_HOST_ARCH用于此(示例输出:“ amd64”、“ i386”、“ armel”等),以便在有人想要交叉编译时正确覆盖它。

于 2013-07-23T19:16:43.640 回答
0

它是uname --hardware-platform。这返回x86_64

ifeq ($(shell uname --hardware-platform), x86_64)
   CFLAGS += -fPIC
   CXXFLAGS += -fPIC
endif
于 2013-07-23T12:39:10.130 回答