gpt4 book ai didi

c - 如何使用 autotools 构建架构/机器相关代码

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:11 24 4
gpt4 key购买 nike

我正在开始使用 autotools,我正在开发一个 C 项目,该项目需要针对不同架构(i386 和 x86_64)的不同构建路径。

到目前为止我的目录结构是

/maindir
/arch
/i386/code.S
/x86_64/code.S
/src/main.c
/include/config.h
/other_header.h

我是 autotools 的新手,我不太了解它们,我遵循了几个教程,但是我找不到根据当前 CPU 架构指定不同目录的方法。

有人可以为我提供一个简短的 makefile.am 和 configure.ac 文件示例来实现这一点吗?非常感谢。

最佳答案

通常,您必须在 configure.ac 的某处调用 AC_CANONICAL_HOST。它将设置变量 host_cpu,然后您可以查询该变量。

以下是示例 configure.ac 的摘录:

...

AC_CANONICAL_HOST

AS_CASE([$host_cpu],
[i?86], [ARCHDIR=arch/i386],
[x86_64], [ARCHDIR=arch/x86_64],
[AC_MSG_ERROR("No assembler code for CPU $host_cpu")]
)
AC_SUBST([ARCHDIR])

...

(注意i?86是用来匹配i58​​6,i686等)有了这个,你可以使用$ (ARCHDIR) 在您的 Makefile.am 中。

关于c - 如何使用 autotools 构建架构/机器相关代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16713205/

24 4 0
文章推荐: c++ - 从 SQLite 获取 int 值
文章推荐: html - 将标题 1 和标题 2 移动到图像右侧
文章推荐: javascript - ReactJS:如何删除 Material-UI 的 的 上的行突出显示?