`
chenqi210
  • 浏览: 76781 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

autotools 在MAC上编译问题

 
阅读更多

通常在MAC上可以和其他linux机器一样用

 

autoreconf -vi && cd bin && ../configure && make

 但是在需要编译iOS(iPhone, AppleTV, WatchOS)之类的二进制文件时需要有其他的设置

 

-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk \
-mios-simulator-version-min=10.3

 

 这个是iPhone模拟器的设置,编译出来的结果可以给模拟器使用。

在模拟器上又对二进制文件有32位和64位的不同要求。以xcode 8.3.1为例,除iphone 5 要求32位外,其他全部要求64位。

如果分开做的话需要每次将下其中一个参数加入到编译选项中

// intel 32bits?
-arch i386

// amd64?
-arch x86_64

// powerpc 32bits
-arch ppc

// powerpc 64bits
-arch ppc64

但是其实,mac上有一个叫fat或universal 的二进制格式。

 

autoconf手册里有提到过可以串在一起直接做成fat/universal格式的。如下

./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
                 CPP="gcc -E" CXXCPP="g++ -E"

 注意,在xcode 8.3.1上ppc和ppc64不被支持,需要去掉。

 

最后编译结果会是这样

.libs/libhelloworld.a: Mach-O universal binary with 2 architectures: [i386: current ar archive random library] [x86_64: current ar archive random library]
.libs/libhelloworld.a (for architecture i386):  current ar archive random library
.libs/libhelloworld.a (for architecture x86_64):        current ar archive random library

 

autoconf手册上原文说不能保证所有情况下都成产生fat/universal格式的二进制文件.

分享到:
评论

相关推荐

    autotools_autotools_交叉编译_

    Linux的交叉编译安装包。用来不同系统下的开发

    autotools_autotools_交叉编译_源码.zip

    autotools_autotools_交叉编译_源码.zip

    自己写的autotools工具说明

    自己写的autotools工具链:ws作为自动编译工具,只要在写好程序的目录下运行ws便可得到经过autotools处理的可执行文件和安装包,并且会生成在arm板上运行的二进制文件 arm.bin .ws是一个别名,在.bashrc文件中定义,...

    autotools 多级目录build

    利用GNU autotools 制作Unix-like Makefile; CPP静态库编译。

    使用 GNU autotools手册

    使用 GNU autotools手册

    autotools-dev_20100122.1_all

    autotools-dev_20100122.1_all 交叉工具链编译是需要。

    autotools学习资料大全

    通过两天的学习,基本掌握了autotools(autoconf/automake)工具的使用。然后把这两天学习用到的资料整理了下,全是干货,能以最快的速度学会用autotools来产生符合GNU标准的小型项目,从而满足自己平时发布开源代码的...

    autoTools电子书

    linux下autoTools电子书汇集,做工程时用到的搜集了一些,打包上传,供大家分享 linux下autoTools电子书汇集,做工程时用到的搜集了一些,打包上传,供大家分享

    使用autotools制作makefile

    使用autotools系列工具只需要用户简单输入目标文件、依赖文件、文件目录等就可以轻松地生成makefile文件,本文介绍了如何使用autotools工具生成makefile文件

    使用autotools组织工程示例

    使用autotools工具包中的autoconf, automake, 以及libtool组织的一个包含多个原码目录的helloworld工程。工程比较简单, 就不具体说明了, 供初学autotools的同学参考。 解压原码包之后按序执行./configure, make...

    mingw(包括autotools)

    包括了在windows编译的工具:autonconf,automake

    自己写的autotools工具

    自己学习shell脚本后写的autotools工具,只要在当前目录下输入ws就可以在当前目录下生成make脚本。make就可以生成以相关的文件名的可执行文件

    GNU autotools

    以下三个命令来编译和安装你的程序: 1) ./configure 2) make 3) make install

    测试包 autotools

    测试包 autotools

    gnu_autotools

    使用_GNU_autotools.pdf vAutotools+A+Practioner's+Guide.pdf autobook-1.5.tar

    autotools使用说明.rar

    autotools使用说明文档、配套的hello源码操作指南。 linux 下c/c++使用autotools工具自动生成makefile 操作说明。 指令:autoscan、aclocal、autoheader、autoconf、automake 创建:makefile.am等

    在linux中编译64位的 hadoop 2.4.1native

    1.已经编译好的 hadoop2.4.1 x64 用法:将hadoop-2.4.1/lib/native下所有文件删除,然后将包中的文件放入 2.自己安装搜索“编译64位的hadoop 2.4.1”参考:...

    cryptopp-autotools:用于Crypto ++项目的Autotools文件

    Crypto ++ Autotools的目的有三方面: 更好地支持Linux发行版,例如Debain,Fedora和openSUSE 通过对基于GNUmake的配置的代表来补充即将达到其极限的GNUmakefile 利用编译器功能探针在ARM,MIPS和Power8架构上产生...

    autotools使用--Linux Makefile的自动生成工具

    autotools作为linux开发人员应该不陌生的,它可以说是linux程序release时必备的工具了,可以省很多的麻烦事(至少免去了编写makefile的繁重工作),试试吧。

    Autotools.A.Practioner's.Guide.to.GNU.Autoconf.Automake.and.Libtool

    Autotools.A.Practioner's.Guide.to.GNU.Autoconf.Automake.and.Libtool

Global site tag (gtag.js) - Google Analytics