首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XCode-iOS :这个链接器警告意味着“文件是为不受支持的文件格式构建的”。

XCode-iOS :这个链接器警告意味着“文件是为不受支持的文件格式构建的”。
EN

Stack Overflow用户
提问于 2014-04-21 23:53:41
回答 1查看 284关注 0票数 1

我正试图获得一些中等到大型的代码库,坦率地说,它编写得很好,具有很高的可移植性。

我决定将它打包成一个可加载的包(插件),并将其从一个模板应用程序项目中撤回,并按照一些教程在应用程序中为可加载的包添加一个目标。

此外,这个可加载的包依赖于我为iOS构建的自定义框架,并将它作为可加载包的依赖项添加。即。插件链接到静态库的框架包装器。

成功构建了自定义框架。当然,我还没有证实它是否有效。其想法是测试集成的功能。

我的构建设置在很大程度上是默认的,除了一些预处理器定义。

因为我还没有真正理解代码库,所以我实际上是在插件目标中添加一个文件,并且每增加3-4个文件就可以清晰地构建一个文件。

构建成功完成,但有许多警告,如下所示,中间构建results...etc的路径如下:

“文件是为不受支持的文件格式构建的,其中包含一系列十六进制字符(),这不是正在链接的体系结构(armv7s)”。当我将十六进制字符转换为ascii时,它只显示了"#1 /Users/my-username/?“。

当我在中间构建结果中对任何.o执行‘文件’时,我会得到"ASCII程序文本,行很长“。

我做错了什么?那是什么意思?

非常感谢你抽出时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-02 23:06:01

简单的答案是:

如果您收到这条消息,那么您的项目设置就会被弄乱。

  1. 如果要将应用程序与自定义框架链接起来,请确保它们是作为胖二进制文件构建的。
  2. 您需要非常清楚地了解active architecture的含义,以及它是如何使用的,以及您是否只想为您的应用程序或所有可能的体系结构构建活动架构。
  3. 如果您和我一样,继承了大量依赖gcc及其扩展的可移植代码,那么希望围绕内置*属性进行更改,并大量使用__clang来提供以前通过等定义的可用宏。
  4. 此外,您还需要使用-E for clang来调试/理解预处理和文件包含。尽管如此,不要忘记取出,因为实际上您的.o只包含文本,构建可能成功,但是链接器会给出这个问题的奇怪信息主题。
  5. 最后,请理解Xcode,就像任何复杂的软件一样,是buggy的。有时,它会保持设置,您可以摆脱。在我的例子中,我包含了自定义框架,这些框架是在将它们放在本地dir中之后构建的。然后,我删除了他们的项目,并选择垃圾时,提示。构建一直失败,因为链接器由于某种原因正在查找本地目录。您必须编辑*.pbxproj并手动删除它们。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23207957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档