升级到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
2 2023-12-20
编程技术问答社区
在Xcode 4中把iPhone应用程序转换为通用应用程序
我正在尝试将现有的iPhone应用程序项目升级到通用应用程序,但是我在Xcode 4中找不到任何选择.在哪里? 解决方案 {已删除过时的/错误的信息.主持人,我要求至少可以接受我的答案.请清理这个. } 请参阅尼克·洛克伍德的答案! 其他解决方案 接受的答案是错误的.创建新目标是您如何从iPhone应用程序创建单独的iPad应用程序(即可以将iPhs汇编为iPad或iPhone应用程序的项目),不是您将iPhone应用转换为将运行的单个通用应用程序的方式在iPhone或iPad上. 您实际上需要做的就是将设备下拉列表中的"目标摘要"选项卡中从iPhone切换到通用: : 感谢Objectivesflash的评论,该评论最初提供了此解决方案.
8 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编译软件,即使我几乎不相信这一点确实
4 2023-12-20
编程技术问答社区
我如何使用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
6 2023-12-19
编程技术问答社区
让iPad应用程序通用?
我看到了很多问题,询问如何将iPhone应用转换为通用应用程序,答案通常是使用Upgrade Target For iPad,有时更新Info.plist.我还曾看过询问这个问题和我一样,但是我正在寻找另一种方法. 在那里发布的答案说,要将iPad应用程序转换为通用应用程序,必须只需更改Target device family,然后为其代码.我认为这个答案是不正确的,因为您最终会出现一个偏斜的代码库. 我将如何将iPad应用程序转换为通用应用程序,以便目录结构看起来像是升级的iPhone应用程序? (包括诸如编辑PLIST和分裂代表之类的步骤.) 解决方案 如果您想手动执行此操作,请首先创建一个虚拟/模板通用应用程序,查看IT和您的应用程序之间的差异,然后更改应用程序以消除这些差异.在这些步骤中: 创建iPad子目录. 在该子目录中为iPad创建合适的XIB. 修改您的info.plist将这些XIB用于iPad(和图标等) 为iPad创建新的
4 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
2 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
2 2023-12-18
编程技术问答社区
将通用应用程序作为iPad专用应用程序提交给苹果
我在xcode中使用窗口模板创建了一个通用应用程序.现在,我只想提交我的应用的iPad版本,因为iPhone版本尚未完全编程. 这怎么可能?我必须改变什么? (目标设置,info.plist等?) 解决方案 两件事.首先,请记住您有主动目标和项目的设置.我不确定哪个位置应该是,但我将其制作在目标上. 将"仅构建主动目标"设置为true. 将"目标家庭设备"设置为iPad. 您会知道这有效,因为汇编的数量将被切成两半,当您上传到iTunes Connect时,它不需要iPhone屏幕截图. 其他解决方案 当您提交给Apple时,您可以选择将其限制在上传过程中的某些平台.
2 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.我的帖子有一个
2 2023-12-18
编程技术问答社区
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相似.
2 2023-12-15
编程技术问答社区
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
6 2023-09-29
编程技术问答社区
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
40 2023-08-22
编程技术问答社区
通用二进制文件是否包含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之间的资源).如
2 2023-08-11
编程技术问答社区
如何将iPhone应用程序排除在iPad商店之外?
我有一个我已经开始变成通用应用程序的iPhone应用程序,但是该过程尚未完成,我想发布对iPhone版本的更新. 我知道您可以在info.plist文件中指定设备功能以将您的应用程序限制到某些设备,但是我该怎么做以防止未完成的通用版本出现在iPad Store中? 检查lsrequiresiphoneos bool条目(在info.plist文件中)是否足够吗? 谢谢! 解决方案 您可以使用 uirequireddevicecapabilities 并指定您在info.plist中需要"电话".那将使它无法脱离iPad(也可以iPod Touch).请参阅其他解决方案 我会考虑限制iPhone 非常错误的决定 - iPad旨在以兼容模式运行所有iPhone应用程序(除了明显的电话之类的东西).因此,您将遇到严重的投诉. 如果是iPad部分的半完成增强功能,则只需关闭这些功能并编译iPhone(目标设备:仅iPhone;也许也可以调整PLIST文件).
6 2023-08-07
编程技术问答社区
如何使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
46 2023-05-14
编程技术问答社区
iOS通用应用程序问题
我已将iPad应用程序提交给Apple并获得批准.现在,我想在应用程序中添加iPhone支持. 我的问题1是: Q1.提交后的此刻是否可以使该应用程序通用? 如果是,我有问题2 Q2.我的iPhone应用与iPad完全相同,但由于屏幕尺寸的自定义,只有几个视图不同.我应该在XCode中做什么来指定iPhone/iPad分别使用哪个类?当我将它们分成两个项目时,我可以平稳地构建它们. 谢谢. 解决方案 您可以修改相同的应用程序并添加其他设备的支持.您需要再次重新提交应用程序. 在您的代码中,您可以检测到它正在执行哪种类型的设备,并根据您可以为每个视图控制器加载适当的XIB文件. 其他解决方案 是的.这很容易.您必须创建通用 app 文件---> newProject-> windowsbaseadapplication 然后选择产品类型通用您有一个单独的iPhone视图以及 iPad 其他解决方案 您可以使用此 识
44 2023-05-06
编程技术问答社区
如何在Mac OS X上编译通用库?
这可能是一个非常愚蠢的问题,但是我是在Mac上开发的新手,并且在通用二进制中很难. 我有一个正在QT Creator中编译的应用程序,根据Lipo,该应用程序正在生产I386架构输出.据我了解,这意味着它正在产生Mac OS X 32位输出. 该应用程序取决于两个外部库.这些库之一我首先致电./config,然后制作. ./config指出它是"为darwin-i386-cc配置的".但是,在运行结果并在结果上调用Lipo后,该体系结构的报告为X86_64. 同样,我还有另一个外部库.那一个没有配置脚本,我只需通过调用制作就对其进行编译.该输出也是x86_64. 如何编译这两个外部库,以便它们产生与我的应用程序i386输出兼容的东西?更好的是,我如何编译这两个外部库来生产通用库,以便我可以从应用程序中生产一个通用二进制图书馆,该库可用于32和64位? 此外,基于Mac世界的当前状态,我是否应该将其他任何平台定为目标来创建一个合适的,用户友好的Mac OS X
8 2023-03-22
编程技术问答社区
如何确定Mac OS X上静态库(.a)的目标架构?
我有兴趣验证是否已为ARM或Intel构建了给定的iPhone静态库. 这比什么都更好奇.是否有某种Mac OS X或BSD特定工具可以执行此操作?此 post Linux. 解决方案 另一个选项是lipo;它的输出比otools. 更可读性,更可读 一个例子: % lipo -info /usr/lib/libiodbc.a Architectures in the fat file: /usr/lib/libiodbc.a are: x86_64 i386 ppc % lipo -info libnonfatarchive.a input file libnonfatarchive.a is not a fat file Non-fat file: libnonfatarchive.a is architecture: i386 % 其他解决方案 file可能会告诉您. otool当然应该能够.但是我首先尝试file 例如 logan:/User
36 2023-03-16
编程技术问答社区
如何为iTunes连接分发创建一个通用二进制文件?
我创建了一个应用程序,被拒绝,因为Apple说我的应用程序是而不是显示正确的ipad窗口,它显示相同的iPhone屏幕,但左上方左上角. 在模拟器上运行,我得到了我的应用程序,以显示它应该是什么,一个大iPad视图. 我的应用程序作为在设备上显示的苹果裁判: alt text http://www.balexandre.com/temp/2010 -04-22_0939.png 我的应用程序运行模拟器(仅限50%zoom): alt text http://cl.ly/cch/screen_shot_2010-04 -22_at_09.40.24.png 应用程序委托的代码是我在之前发布 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // The defaul
16 2023-02-01
编程技术问答社区