Tag: 铿锵

Apple Clang在Xcdoe 10下是否缺less针对ARMv8 / Aarch64的CRC32?

我试图为我们的Xcode交叉编译设置configuration项。 交叉编译testingARMv7和ARMv8。 事情看起来不错,除非需要链接ARMv8: clang++ -DNDEBUG -g2 -O3 -fPIC -pipe -Wall -miphoneos-version-min=7 -arch arm64 \ -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk \ -stdlib=libc++ -c cryptlib.cpp clang++ -DNDEBUG -g2 -O3 -fPIC -pipe -Wall -miphoneos-version-min=7 -arch arm64 \ -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk \ -stdlib=libc++ -c cpu.cpp … clang++ -o cryptest.exe -DNDEBUG -g2 -O3 -fPIC -pipe -Wall -miphoneos-version-min=7 -arch arm64 \ -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk \ -stdlib=libc++ […]

如何在OS X 10.8.4上为iOS模拟器(6.1)编译Boost 1.54.0(1.54)?

我已经成功地设法编译了一些Boost库,并使用这个脚本创build了一个用于OS X,iOS和iOS模拟器的框架: https : //github.com/wuhao5/boost/blob/188e905626dbd522f65950102ed0c8ce77cb28e8/boost.sh基于Peter Goodliffe在这里的工作: http : //goodliffe.blogspot.com/2010/09/building-boost-framework-for-ios-iphone.html Boost 1.53.0使用clang并链接到libc ++。 使用Boost 1.54.0编译iOS模拟器时出现以下错误:脚本失败: /bin/sh: line 1: -ftemplate-depth-128: command not found 。 我做了相当多的挖掘,这就是我所知道的: 在boost.sh中,iOS模拟器bjam和编译器选项包括“-arch i386” Boost 1.54.0发行说明声明“Boost不再支持80386目标CPU” Boost 1.53.0对于OS X,iOS和使用相同脚本的iOS模拟器似乎可以很好地编译 升压1.54.0似乎编译罚款的OS X和iOS本身使用相同的脚本 这是我想我知道的: 将“-d13”传递给bjam(生成debugging信息)时,在为iOS模拟器构build时,似乎没有设置variables“CONFIG_COMMAND”。 对于其他configuration,此variables设置为clangpath,并包含编译器选项。 对于模拟器来说,它是空的,我相信会导致上面的错误,因为当bjam试图运行编译器使用这个variables,它运行一些附加的选项,以模板深度开始。 因此,CONFIG_COMMANDvariables似乎没有正确设置导致失败。 我不知道为什么它没有被设置,因为我不知道Boost构build系统是否足够筛选通过“-d13”标志生成的100 + MB输出的其余部分。 我怀疑与1.54.0引入的“-arch i386”选项不兼容。 我试着改变这个“-arch i486”和“-arch x86_32”,但同样的问题发生。 有没有其他人有这个成功? 我想使用Boost.Log这就是为什么我甚至试图这样做。

使用#define和clang为info.plist创build版本号变体?

几年前,在编译GCC时,在#include.h文件中定义的以下内容可以在info.plist中预处理: #define MAJORVERSION 2 #define MINORVERSION 6 #define MAINTVERSION 4 <key>CFBundleShortVersionString</key> <string>MAJORVERSION.MINORVERSION.MAINTVERSION</string> …将变成“2.6.4”。 这是因为海湾合作委员会支持“传统”的国旗。 (请参阅Xcode中的技术说明TN2175 Info.plist文件使用C预处理器 ,在“在macros扩展过程中消除令牌之间的空白”下) 但是,快进到2016和Clang 7.0.2(Xcode 7.2.1)显然不支持“-traditional”或“-traditional-cpp”(或正确支持),产生以下string: "2 . 6 . 4" (请参阅错误12035 – 预处理程序在macros扩展中插入空格,注释4 ) 因为有很多不同的变体(CFBundleShortVersionString,CFBundleVersion,CFBundleGetInfoString),所以最好解决这个叮当问题,并定义一次,然后连接/串联这些部分。 什么是现在这样做的普遍接受的模式? (我目前正在build立在MacOS上,但IOS的工作模式是一样的)

无法通过编译指示禁用LLVM优化

我有一个崩溃的代码块,除非我优化closures。 我正在用LLVM编译器2.0构build 我想通过用#pragma编译器指令包装有问题的代码来closures优化; 或者closures整个文件的优化。 我一直在叮铛声手册和代码; 但是没有任何东西会跳出来。 有谁知道如何改变单个CU的优化(而不是整个应用程序)?

如何在Swift框架中导入私有框架头文件?

我有一个Objective-C框架(框架A),公开和一些私人标题。 公共标题也在框架的标题中声明。 我有第二个与Objective-C框架链接的Swift框架(框架B)。 现在,如果我想在BI中import A的公共头文件,只需要import A 。 但是,我怎么去导入私人头文件? 我知道桥头不是一个选项,因为这不支持框架。 我是否需要以某种方式为私有头创build一个单独的伞头?