通常在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格式的二进制文件.
相关推荐
本文将深入探讨如何在Fedora 28操作系统上对Seafile客户端进行交叉编译,使其能够在Windows系统(如Win7和Win10)中运行。Seafile是一款开源的云存储和文件同步服务,它的客户端支持多种操作系统,包括Linux、...
在OSX平台上编译VLC的iOS版本,需要处理一系列依赖库和源代码,确保所有必要的组件都就绪。根据提供的文件列表,我们可以看到涉及到了多个关键的开源库,这些库是构建VLC_iOS的基础。 首先,`libgcrypt-1.6.2.tar....
在本文中,我们将深入探讨如何在Ubuntu 14.04操作系统上编译UPX 3.92,这是一个广泛使用的可执行文件压缩工具。在编译过程中,我们经常会遇到各种错误,但不用担心,因为本资源包包含了相关源码、编译步骤以及详细的...
编译ijkplayer_ios需要Mac操作系统,因为iOS应用的开发通常在Xcode环境中进行。开发者需要安装Xcode,这包含了iOS SDK和必要的编译工具链。同时,还需要配置好Homebrew(一个包管理器)来安装编译ijkplayer所需的...
2. 跨平台支持:CMake支持多种操作系统平台,开发者可以编写一个CMakeLists.txt文件,通过简单的修改就可以在不同的平台上进行构建,无需对每种操作系统编写单独的编译指令。 3. 编译效率高:相较于autotools,...
在其他平台上,例如Linux或Mac OS X,可能会有autotools的配置脚本,如configure、makefile.in等,用于自动化编译和安装过程。 使用LIBXML2的开发者可以通过API接口来访问其功能,这些接口包括解析XML文档的函数...
这两个脚本主要用于识别和处理源代码树中的系统配置,确保软件能在多种操作系统和硬件架构上正确编译和运行。 `config.guess` 的主要功能是检测构建系统的具体类型。它能够识别各种操作系统、处理器架构以及不同的...
本文将详细介绍如何在不同的操作系统上安装Git,包括Linux、macOS、Windows以及从源代码编译安装的方法。 #### 在Linux上安装Git 在Linux环境下,可以通过多种方式安装Git,具体取决于您的Linux发行版: - **...
2. **构建系统**:FreeType使用了autotools作为其构建系统,包括`configure`脚本和Makefile模板,用于在不同平台上编译和安装库。用户可以通过执行`./configure`、`make`和`make install`等命令来编译和安装库。 3....
其次,CMake是一个跨平台的工具,可以在多种操作系统上运行,如Linux、Unix、苹果Mac OS X、Windows等。这是由于CMake能够生成对应平台的原生编译配置文件。例如,在Linux/Unix系统下,CMake生成makefile文件;在...
6. **配置脚本和Makefile**:用于构建和安装wxGTK库的脚本,通常使用autotools或CMake进行编译和安装。 **使用wxGTK-2.4.0开发** 在Linux环境下,开发者首先需要解压并编译这个包,然后将编译好的库安装到系统路径...
C++跨平台开发是指在不同操作系统平台之间,比如Windows、Mac OS X、Linux/Unix等,进行应用程序开发的过程,使得同一份C++源代码能够在这些不同的平台上无差异地编译和运行,同时保持功能、可用性和质量不打折扣。...
3. **多平台支持**:GCC不仅适用于Linux,还可在其他各种操作系统上运行,如Windows、Mac OS、FreeBSD等,这得益于其跨平台的特性。 4. **调试支持**:GCC产生的对象文件和可执行文件可以与GDB(GNU调试器)配合...
- **Linux**:在Linux上,通常通过Git克隆源代码,然后使用autotools或CMake进行编译安装。根据不同的Linux发行版,可能需要安装额外的库和依赖。 - **Mac**:在MacOS上,可以使用Homebrew或者源代码编译安装,...
* 交叉编译:CMake 能够支持交叉编译,使得项目能够在不同的平台上编译和运行。 CMake 的未来 CMake 的未来发展方向包括: * weiter Verbesserung der Performance:CMake 将继续优化其性能,使得项目的构建变得...
它通过提供一种高级的、抽象的、平台无关的语言来描述项目的构建过程,使得开发者可以更方便地在不同的操作系统上编译项目,包括Windows、Linux、Mac OS X等。CMake并不直接执行编译和链接操作,而是生成特定构建...
GCC支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada、Go等,并且能够运行在多种操作系统上,如Linux、Windows、Mac OS X等。本GCC中文手册是为帮助开发者更方便地理解和使用GCC而编写的,旨在提供详尽的...
在苹果Mac系统上,CMake能够生成Xcode工程文件;而在Windows平台上,CMake能够生成Visual Studio工程文件。这种灵活性大大方便了不同操作系统下的软件开发和构建工作。 此外,CMake具备管理大型项目的能力,能够...
1. **环境准备**:确保全志A40i设备上已经安装了开发工具链,如交叉编译器,以及必要的构建系统如make和autotools。 2. **源码获取**:下载驱动程序源代码,这可能是从给出的链接或其他来源获取。 3. **配置修改**:...