【问题标题】:Makefile for building library across multiple architectures用于跨多个架构构建库的 Makefile
【发布时间】:2017-02-24 01:39:51
【问题描述】:

我有一个非常基本的 makefile,它的目标是构建静态库或动态库。它默认创建一个静态库。

我希望能够为多种架构构建这个库。我希望能够通过命令行指定我想为其构建它的架构,以便它在内部获取其他所有内容(CC、AR 等的值)。

最好的方法是什么?

【问题讨论】:

  • 你的意思是交叉编译?
  • @kaylum 是的,我的意思是交叉编译。

标签: c linux makefile


【解决方案1】:

我建议最简单的方法是在 makefile 中为不同的架构设置环境变量,然后定义引用架构中该部分变量的规则。一些常见的值也可以在其他地方设置和使用。

SPARCCC=/opt/SUNWspro/bin/cross-cc
GCC=/usr/bin/gcc
GCCDEBUG=/usr/bin/gcc
TAR=/usr/bin/tar

sparc: 
    @echo $(SPARCCC) -o a a.c
    @echo ${TAR} cvf a.tar a.*

i386 : 
    @echo $(GCC) -o a a.c
    @echo ${TAR} cvf a.tar a.*
    @echo $(GCCDBX)

这里有两个不同的目标 sparc 和 i386,运行上面的脚本会产生如下结果

$ make sparc
/opt/SUNWspro/bin/cc -o a a.c
/usr/bin/tar cvf a.tar a.c a.tar

$ make i386
/usr/bin/gcc -o a a.c
/usr/bin/tar cvf a.tar a.c a.tar

【讨论】:

    猜你喜欢
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 2011-11-17
    相关资源
    最近更新 更多