我如何使用Xcode 3.2.2为OSX构建通用二进制文件(ppc/i386)?
我正在尝试为工作中的项目构建通用二进制文件,但我似乎无法正确设置Xcode. 我熟悉有关此的Apple文档,但显然我没有正确阅读. Xcode构建选项似乎是: 建筑 基本SDK C/C ++编译器版本 Mac OS X部署目标 在我的设置中,我有以下有效体系结构:i386 ppc ppc64 ppc7400 ppc970 x86_64. 如果使用以下选项,我将获得 i386 和 ppc970 的二进制文件: 体系结构: i386 ppc 基本SDK: Mac OS X 10.5 C/C ++编译器版本: GCC 4.0 Mac OS X部署目标: Mac OS X 10.5 我有几个问题: 为什么PPC970而不是PPC7400(或简单的PPC)? PPC(PPC,PPC64,PPC7400,PPC970)有什么区别? 如何获得任何PPC的二进制文件? 显然,我需要一个带有PPC7400的二进制文件才能在我们有测试的M
4 2024-04-05
编程技术问答社区
Boost。用于Boost的MacOSX二进制文件
有没有macoSX通用二进制文件(至少有i386/ppc for> = macOSX10.3) 解决方案 您可以使用一旦安装了Macports,您只需要发布以下命令: $ sudo port install boost +universal 您还可以要求MacPorts构建$ port pkg pstree 或 $ port dmg pstree PKG或DMG文件将放置在/opt/local/var/macports/build 的子文件夹中 编辑:如今,您可以使用$ brew install boost 另请参见 $ brew info boost 其他解决方案 我最近为OpenFrameWorks开发了一个基本上是预编译的增压库1.57.0 i386 和 x86_64 在以下github仓库中: https://github.com/danoli3/danoli3/ofxosxboost//p> 还编译了用于新的Mac/
8 2024-04-02
编程技术问答社区
将Boost编译为静态的通用二进制库
我想拥有一个静态的通用二进制lib. (最好是最新的稳定版本,即1.43.0或更新.) 我发现了许多Google热门歌曲,具有类似的问题和可能的解决方案.但是,他们中的大多数似乎已经过时了.而且它们都没有真正起作用. 现在,我正在尝试 sudo ./bjam --toolset=darwin --link=static --threading=multi \ --architecture=combined --address-model=32_64 \ --macosx-version=10.4 --macosx-version-min=10.4 \ install 编译并安装罚款.但是,生产的二进制物似乎破裂了. az@ip245 47 (openlierox) %file /usr/local/lib/libboost_signals.a /usr/local/lib/libboost_signals.a: current ar archive rando
44 2024-04-02
编程技术问答社区
如何使Boost dylibs在OS X上通用(i386和x86_64)?
我正在尝试将Boost库编译到通用二进制文件中(即包含i386和X86_64架构的" fat"文件). 使Internet和 SO 我组装了以下说明. 下载boost(例如,来自 http://www.boost.org/users/下载/) 在下载的文件夹中,类型./bootstrap.sh (或者,在我的情况下./bootstrap.sh --with-libraries=thread,因为我只需要线程库) 类型./b2 install cxxflags="-arch i386 -arch x86" 这些步骤将Boost线程库安装到/usr/local/lib/(其标准位置).由此产生的静态库是通用的二进制文件.到目前为止,一切都很好. $ lipo -i /usr/local/lib/libboost_thread.a Architectures in the fat file: /usr/local/lib/libboost_thread.a
4 2024-04-02
编程技术问答社区
将非终止的二进制数转换为十进制数
我不知道如何将非终止二进制数(分数)转换为十进制.有人可以指导我如何做一个例子吗? 解决方案 如果二进制数为未终止的整数,则它将是无限的(正或负数).您如何表示小数中的无限数字?我认为这是∞. 否则二进制号是浮点数,恭喜.在许多浮点数标准的标准中(例如,IEEE 754),Mantissa由二进制模式表示,其中最高位的值为1/2,第二位的值为1/4等.您可以通过从左侧累积每个位来将其转换为十进制. 例如,您有一个未终止的二进制图案 1011101111111111111 ........ 转换为十进制,只是将它们积聚为 1 *1/2 + 0 *1/4 + 1 *1/8 + 1 *1/16 + 1 *1/32 + 0 *1/64 + 1 *1/128 + 1 1 *1/256 ........ 直到您获得足够的精度. 其他解决方案 如果您的基数2中有"重复十进制",并且您知道什么 重复一部分是,可以将其转换为精确 p/q 符号中的有理数(
4 2024-03-30
编程技术问答社区
Windows 8脂肪二进制文件(x86和ARM的exe)。
任何人(这里)是否知道Windows 8是否会有一种可以与Visual Studio 2012一起编译的脂肪EXE,而ARM和X86机器都将支持它?我猜不是,因为您无法创建将执行32或64位代码的脂肪二进制文件(据我所知)(我知道的只有解决方案是32位,可以飞行产生64位的可执行文件). 似乎有帮助Microsoft扩展EXE或为Windows 8及以后创建脂肪二进制格式,这将使一个人可以编译一个可执行的平台扩展调色板. . 编辑:以下链接显示了如何在第一个开发预览中编译ARM EXE.我想补充一点,因为它没有给出脂肪二进制支持的暗示,但它也是游戏的早期.我认为现在不认为它是一种可能性. 汇编的手臂编译 解决方案 通过Windows App Store分发ARM平台的二进制文件的要求可以减轻Windows 8中脂肪二进制支持的需求.现代应用程序已编译为一个包装. 其他解决方案 需要单独的二进制文件才能在不同的系统上执行.与Win32和Win64相似.
4 2024-03-03
编程技术问答社区
Mac 10.6 Universal Binary scipy: cephes/specfun "_aswfa_" 符号未找到
当汇编为i386/x86_64通用二进制时,我无法在32位模式下发挥作用,并在我的64位10.6.2 macpro1.1. 上执行. 我的python设置 在答案,我构建了Python 2.6.4的32/64位Intel Universal Binary,目的是使用arch命令在体系结构之间进行选择. (我设法制作了一些我想要使用Lipo的库的通用二进制文件.)所有这些都可以使用.然后,我根据说明在现在,除了Scipy以外的所有内容似乎都在据我所知,我确实可以使用arch -i386 python和arch -x86_64 python在32和64位模式之间选择. 错误 Scipy以32位模式投诉: $ arch -x86_64 python -c "import scipy.interpolate; print 'success'" success $ arch -i386 python -c "import scipy.interpolate; pri
12 2024-03-03
编程技术问答社区
如何为iTunes连接分发创建一个通用二进制文件?
我创建了一个被拒绝的应用程序,因为苹果说我的应用程序是未显示正确的iPad窗口,并且它显示了相同的iPhone屏幕,但左上方对齐. 在模拟器上运行,我得到了我的应用程序可以准确显示它应该的内容,一个大iPad视图. 我的应用程序作为设备上显示的苹果裁判: 我的应用程序运行模拟器(仅50%缩放): alt text http://cl.ly/cCH/Screen_shot_2010-04 -22_at_09.40.24.png 我在应用程序委托中的代码是i 在 之前出版 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // The default have the line below, let us comment it //MainViewControll
4 2024-03-03
编程技术问答社区
在iTunes中设置iOS应用程序的语言
我想在iTunes中设置应用程序语言.它总是只显示英语,但我想在iTunes中展示两种语言.我不想对应用程序代码进行任何更改,因为我已经通过设备语言管理这两种语言. 示例图像包含多种语言,例如英语,中文,荷兰语和法语. 解决方案 我当前有同样的问题,即使我在iTunes Connect中填写了不同的语言,我仍然只有英语. 我将尝试尝试其他方法,只需在我的应用中添加en.lproj&xx.lproj(用国家语言替换xx xx xx),其中包含一些数据.我认为,当您提交应用程序时,这是Apple收集可用语言列表的地方.我希望这会有效! 其他解决方案 您可以通过iTunes Connect编辑本地化.从列表中选择您的应用程序,然后单击"管理本地化".但是,如果您的应用程序目前正在审核或批准中,则需要提交新的二进制文件: 您不能添加一种新语言 此页面是因为您的应用程序都有 已经被批准或正在 在评论中.要添加一种新语言,您 必须提交您的应用的新版本.
6 2024-03-03
编程技术问答社区
将实时通用应用程序升级为仅适用于iPad
我们在AppStore中有一个实时通用应用程序.我们的客户改变了主意,不希望该应用程序成为通用,他希望它仅是iPad. 由于该应用程序是在某个时候提交的,因此有一些用户使用iPhone版本. 如果我们提交仅iPad的升级会发生什么? 评论团队会拒绝吗? 如果它上线,iPhone用户会收到有关更新的通知吗?如果是的,以什么形式? 或iPhone用户无法重新安装应用程序? 谢谢! 解决方案 这是您问题的答案:请参阅此问题的答案: "为什么正确的设备要求很重要?我可以在iTunes Connect上更新它们吗?" 这是重要的部分: "要在第一次二进制提交后更改应用程序的设备需求,请在uirequireddevicecapabilities Key中提交带有新信息的应用更新二进制文件.您只允许您扩展设备要求.提交更新以限制设备要求不允许" 这意味着,如果您已经提交了通用构建,然后尝试仅提交iPhone或仅作为Universal
8 2024-03-03
编程技术问答社区
升级到XCode 4后无法链接ppc
我遵循这些说明 有关如何获得10.4 SDK在升级到Xcode 4后使用PPC的方式. . 作为增加的皱纹,我不是在使用Xcode本身,而是随附的GCC工具链. (这是使用makefiles的大型跨平台项目的一部分.) 这是一个样本makefile: CXX=g++-4.0 CXXFLAGS=-arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 helloworld: helloworld.o $(CXX) $^ -o $@ $(CXXFLAGS) 使用helloworld.cpp: #include int main(void) { printf("hello world \n"); return 0; } 这是它的输出: $ make g++-4.0 -arch i386 -a
6 2023-12-20
编程技术问答社区
在Xcode 4中把iPhone应用程序转换为通用应用程序
我正在尝试将现有的iPhone应用程序项目升级到通用应用程序,但是我在Xcode 4中找不到任何选择.在哪里? 解决方案 {已删除过时的/错误的信息.主持人,我要求至少可以接受我的答案.请清理这个. } 请参阅尼克·洛克伍德的答案! 其他解决方案 接受的答案是错误的.创建新目标是您如何从iPhone应用程序创建单独的iPad应用程序(即可以将iPhs汇编为iPad或iPhone应用程序的项目),不是您将iPhone应用转换为将运行的单个通用应用程序的方式在iPhone或iPad上. 您实际上需要做的就是将设备下拉列表中的"目标摘要"选项卡中从iPhone切换到通用: : 感谢Objectivesflash的评论,该评论最初提供了此解决方案.
18 2023-12-20
编程技术问答社区
如何还原PPC/PPC64以及对Xcode 4的完整10.4/10.5 SDK支持?
由于Apple仅使用Xcode4寄出SDK 10.6,因此不可能使用Xcode4开发PPC应用程序.虽然可以使用Xcode4开发应用程序,该应用程序也可以在10.5甚至10.4系统上运行(通过选择SDK 10.6,但部署目标10.5或10.4),但它们只能在Intel Mac上运行,因为您至少需要SDK 10.5,构建PPC应用程序. 此外,有一些极少数情况,您确实需要在10.6之前与SDK建立以进行完整的平台支持,例如如果某些弃用功能从10.6 SDK完全消失,但是您必须使用它,而动态链接并不总是最好的选择.同样,与较早的SDK链接有时会减轻您不应该使用的功能,因为这会导致对较早的OS版本的不兼容,因此将无法使用,并且任何尝试立即使用它会导致编译器或链接器错误的尝试. 最后但并非最不重要的一点是Apple还删除了XCode4的GCC 4.0支持,对于某些软件正确构建可能是必要的,并且Apple在使用SDK 10.4时从未允许使用GCC 4.2编译软件,即使我几乎不相信这一点确实
10 2023-12-20
编程技术问答社区
让iPad应用程序通用?
我看到了很多问题,询问如何将iPhone应用转换为通用应用程序,答案通常是使用Upgrade Target For iPad,有时更新Info.plist.我还曾看过询问这个问题和我一样,但是我正在寻找另一种方法. 在那里发布的答案说,要将iPad应用程序转换为通用应用程序,必须只需更改Target device family,然后为其代码.我认为这个答案是不正确的,因为您最终会出现一个偏斜的代码库. 我将如何将iPad应用程序转换为通用应用程序,以便目录结构看起来像是升级的iPhone应用程序? (包括诸如编辑PLIST和分裂代表之类的步骤.) 解决方案 如果您想手动执行此操作,请首先创建一个虚拟/模板通用应用程序,查看IT和您的应用程序之间的差异,然后更改应用程序以消除这些差异.在这些步骤中: 创建iPad子目录. 在该子目录中为iPad创建合适的XIB. 修改您的info.plist将这些XIB用于iPad(和图标等) 为iPad创建新的
12 2023-12-19
编程技术问答社区
为armv6和armv7构建iPhone静态库,其中包括另一个静态库
我有一个具有"主"静态库目标的Xcode项目,其中包括/链接到其他Xcode项目的其他静态库. 当构建"优化(ARMV6 ARMV7)"的主库目标时,在CreateNuniverSalbinary步骤中发生了错误.对于主库包含的库的每个.o文件,报告了以下错误(例如,fbconnectglobal.o文件): warning for architecture: armv6 same member name (FBConnectGlobal.o) in output file used for input files: /Developer_Beta/Builds/MTToolbox/MTToolbox.build/Debug-iphoneos/MTToolbox.build/Objects-normal/armv6/libMTToolbox.a(FBConnectGlobal.o) and: /Developer_Beta/Builds/MTToolbox/MTToolb
6 2023-12-19
编程技术问答社区
XCode 5中的Fat库
我一直在尝试构建一个静态库,然后在Xamarin中创建一个绑定项目.一切都很好,直到iOS 7命中.我不得不抓住最新版本的本地库,并尝试在Xcode 5中构建它,但它一直给我带来各种问题.我认为它可能与构建过程有关,或者可能在Xcode 5(vs. 4)中进行某些更改的设置有关. . 我正在使用/a>脚本构建一个基于此问题的通用二进制文件: 构建脂肪静态库(设备 +设备 +使用Xcode和SDK 4+ 使用模拟器) 我确实注意到的一件事是,以前,在旧iOS 6.1版本的二进制版本(内置Xcode 4)中,我的二进制文件大约为24 MB,现在使用Xcode 5,它的热量呈50 MB!这使我认为编译和链接步骤有问题. 有什么想法吗?在Xcode 5(vs 4)中,其他人是否遇到了通用二进制问题的问题? 解决方案 我正在使用下面的makefile作为我的库,即使使用Xcode 5和iOS7 SDK. XBUILD=/Applications/Xcode.a
10 2023-12-18
编程技术问答社区
将通用应用程序作为iPad专用应用程序提交给苹果
我在xcode中使用窗口模板创建了一个通用应用程序.现在,我只想提交我的应用的iPad版本,因为iPhone版本尚未完全编程. 这怎么可能?我必须改变什么? (目标设置,info.plist等?) 解决方案 两件事.首先,请记住您有主动目标和项目的设置.我不确定哪个位置应该是,但我将其制作在目标上. 将"仅构建主动目标"设置为true. 将"目标家庭设备"设置为iPad. 您会知道这有效,因为汇编的数量将被切成两半,当您上传到iTunes Connect时,它不需要iPhone屏幕截图. 其他解决方案 当您提交给Apple时,您可以选择将其限制在上传过程中的某些平台.
16 2023-12-18
编程技术问答社区
如何为armv6、armv7和i386编译静态库(fat)
我知道这个问题已经提出了几次,但是我的目标在搜索网络方面略有不同.具体来说,我已经能够为iPhone构建静态库,但是我能够构建的最终脂肪文件仅包含ARM和i386架构(而且我不确定ARM的含义是什么:V6或V7是什么?).我无法专门为ARMV6和ARMV7编译,它们使用Lipo合并了两个架构. Lipo工具抱怨说,ARMV6和ARMV7库中都存在相同的架构(ARM,而不是ARMV6或ARMV7). 有人可以准确地解释如何为ARMV6和ARMV7构建,然后使用Lipo将这些库合并到胖文件中? 编辑:我需要构建不是使用Xcode,而是直接编译传统的Unix库. 解决方案 只需使用libtool将两个ARM6和ARM7版本链接在一起 - Xcode的作用.但是,如果您尝试将这些静态库组合到新的超级图书馆中,您将遇到问题.如果您需要这样做,请阅读 this ./p> 如果您已经在这样做,那就是为什么Lipo抱怨您的" ARMV6"库包含ARMV6和ARMV7.我的帖子有一个
14 2023-12-18
编程技术问答社区
ios静态库 架构x86_64的未定义符号
lipo -info libxxxx.a 脂肪文件中的体系结构:libxxxx.a是:ARMV7 I386 ARM64 但是,依赖项目中的编译器正在给出链接错误, Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_ClassXXXX", referenced from: objc-class-ref in AppDelegate.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 我想念什么吗? LIB项目的所有目标都有架构:标准架构(ARMV7,ARM64) 和有效体系结构ARM64,ARMV7,ARMV7S 在我的lipo命令中,在制作通用二进制时,我是从iPhonesimul
10 2023-09-29
编程技术问答社区
通用二进制文件是否包含iPhone应用包中所有沉重的ipad图形?怎么办?
由于iPad 3具有视网膜显示屏,因此我开始担心iPhone和iPod Touch设备上通用二进​​制文件中的"图像垃圾邮件"量.显然他们不需要这些资源. 我从未真正检查过,但是也许某人知道以下:当iPhone下载通用二进制文件时,App Store是否会自动运送所有重型iPad图形的版本?还是iPhone或iPod Touch充斥着仅iPad上需要的内容? 是否有任何方法可以制作通用二进制"智能",以便iPad仅在iPhone只接收iPhone资源时才接收iPad资源? 就我而言,我有一个10 MB通用应用.将其升级到Retina iPad将意味着iPod touch用户将遭受翻倍的文件大小. 解决方案 否,安装在不同的设备上时,App Bundle不会剥离任何内容.请记住,整个过程都是编码的,因此 没有任何东西被剥离,否则签名将是无效的.这里的标准建议是仅仅了解您的客户只会实际使用应用程序捆绑包中的一半资源(如果您不共享iPhone和iPad之间的资源).如
4 2023-08-11
编程技术问答社区