- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试移植 SimpleFTPsample从苹果从这个 IOS 项目到我的 OSX 项目,但是当我尝试构建时出现以下错误。
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NetworkManager", referenced from:
objc-class-ref in Document-DAE96E3625ECED63.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我在网上搜索过,并且已经检查了我复制两次的所有代码,添加了所有框架,并包含了 header 。有人可以帮我找出问题所在,或者更好地解释这意味着什么,以便我将来可以自己解决吗?我如何找出 NetworkManager 类中的问题?编译之前我没有收到任何错误。
谢谢
---编辑---忘了提及,我只需要示例中代码的 PUT 部分,我只是检查该部分。其余的都没有被复制过来。我复制了 NetworkManager.h、NetworkManager.m 并从 PUT 文件中复制了我需要的代码部分。
最佳答案
通常,当链接器说“什么?我从来没有听说过那个类”,这意味着实现该类的模块(SomeClass.m)没有被编译。
发生这种情况的方式有两种:
这会导致请求 SomeClass.o (在您的情况下为 NetworkManager.o)时出错。这不是您遇到的错误,但足够相似,我觉得值得在这里列出。
链接器需要一个目标文件,该文件是由成功编译生成的。如果编译失败,则目标文件不存在,因此您将收到“文件未找到:blah/blah/blah/SomeClass.o”错误。
999‰的编译失败是因为模块包含错误——语法错误、无法识别的名称(例如拼写错误/拼写错误)或其他导致编译失败的缺陷。
构建错误导致其他构建错误相当常见,因此您应该始终从列表顶部向下处理错误。
此问题的解决方案是导航到 SomeClass.m 并修复其中存在的所有问题,然后再次尝试构建。
这就是你遇到的。
每个目标都有一个构建阶段列表,每个阶段都描述构建目标需要完成的事情。大多数目标至少有编译源和链接二进制与库阶段。每个构建阶段都有一个输入文件列表。
编译源阶段的输入文件是 Xcode 将尝试编译的模块文件。将二进制文件与库链接将隐式链接编译器生成的所有内容(所有目标文件)及其列表中的库,例如 Cocoa.framework。
对于每个目标,Xcode 将仅尝试编译处于该目标的编译源构建阶段的模块。
很可能忘记将模块添加到目标,但仍尝试在同一目标内的另一个模块中使用它。也许您很久以前为另一个目标创建了该模块,现在想在您现在正在处理的目标中使用该代码,或者您可能只是忘记在创建模块或以其他方式将其添加到项目。
无论哪种方式,您都会收到该错误消息,告诉您您尝试使用其内容的模块未在您尝试使用它的目标中列出以供编译。
有两种方法可以修复它:
防止这种情况的方法是确保在将模块添加到项目时检查相关目标。这包括创建新模块和添加您从其他人那里获得的模块(例如开源可重用类)。
关于objective-c - 将代码从 ios 移植到 osx 项目时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14914071/
我带着为 OSX 编写 PAM 模块的永无休止的传奇再次回来了。我已经写好了模块。它在使用 ssh 或启动新的终端窗口或 su 时有效。我真正真正想要的只是 ssh 和登录窗口。 我的 PAM 模块在
我们有一个类似于Soundflower的虚拟音频设备驱动程序。该虚拟设备将在声音系统首选项中列出。每当我们的设备在系统偏好设置中被选择时,它就会阻止空闲 sleep 。如果我们将选择切换为默认输出设备
我带着为 OSX 编写 PAM 模块的永无止境的传奇又回来了。我已经编写了模块。它在使用 ssh 或启动新的终端窗口或 su 时有效。我真的、真的、真的想要的只是 ssh 和登录窗口。 我的 PAM
我想在 osx lion 上安装 pyaudio,但我无法做到。每次我尝试使用 pkg 时,它都不会安装任何东西。当我尝试使用 pip 安装它时,出现以下错误(以及许多其他行): lipo: can'
我使用 Java 进行开发已有很长时间了,但直到最近才从 Windows 切换到 OSX。在 Windows 中,我发现一切都足够简单易懂。我可以将 JDK 安装到一个选择的位置,其中还包括一个 JR
运行 Mac OSX 10.7.5 我想在 USB3 外部硬盘上启用 NTFS 并需要 UUID 来执行此操作( http://ntfsonmac.com ),但 diskutil 拒绝给我 UUID
我正在尝试为 Finder 创建服务,但我的应用程序不需要有 UI。好吧,我只需要一个 UI 来请求用户提供更多信息,我的应用程序有时可能需要这些信息。 但是应用程序应该在没有任何 UI 且 Dock
我正在尝试在我的 mac 上使用本地服务器,但它似乎忽略了/etc/hosts 文件中的 localhost 设置。找到了几个页面,其中解决方案是重新安装,并将 localhost 放在/etc/ho
这是一个 OSX 链接器问题。我不认为 OSX(BSD 或 Mach 层)在乎零页有多大,或者它是否真的存在。我认为这是一个工具的事情。但这是我的意见,这就是我问的原因。 -pagezero_size
我正在构建一个将在 iOS/OSX 应用中使用的模块。 客户坚持认为该模块可以在 iOS 和 OSX 上运行。 我需要检查我在 iOS 和 OSX 上使用 UIDevice 时使用的系统版本 FTWD
我尝试在 OSX 10.8.2 中使用 gnuplot,并看到 x11 是不明确或未知的终端类型。一些研究表明 x11 不受支持,我下载了 XQartz,但我仍然收到相同的错误消息。 我使用 expo
我从官方网站下载了 PostgreSQL 并运行了 .dmg 安装程序。之后我下载了 pgadmin3,我确实能够连接到数据库。 当我运行“psql”时,出现以下错误: psql: could not
自从升级到 OSX Catalina 以来,我一直遇到 UnsatisfiedLinkErrors 问题,尝试在 java 下运行 JNI 包装的库,其中包含多个 native 库引用,这些引用在早期
在 OSX 10.6 上使用 make 构建 C++ 项目时,我确定预处理器定义 __LP64__ 似乎始终自动由编译器(即,它没有在任何头文件中定义)(参见 Where is __LP64__ de
我正在尝试将我的 iOS 应用程序移植到 Mac OS X SDK,并且发现我收到以下错误消息:'Collection' redeclared as a different kind of symbo
我一直在 OSX 10.14 中成功使用我的代码生成 Metal 纹理: let textureLoaderOptions = [MTKTextureLoader.Option.origin : MT
我对编码有些陌生,想用 MySQL 后端启动我的第一个 Django 应用程序。我已经在我的 Windows 机器上使用这个设置将近一年了,但它是一个继承的代码库——不幸的是,我从未尝试过从头开始构建
我正在迁移到一台新计算机,同时从雪豹迁移到狮子。 phpunit 似乎没有进行迁移,所以我重新安装了它。然而,pear 的标准安装似乎不适用于我的 php 家庭brew 安装。这是错误: phpuni
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 已关闭 7 年前。 Improve
我在 OSX10.9 上为我的应用程序构建了一个 Java 7 bundle ,一切看起来都很好,但是当我在 OSX 10.7 上尝试它时,它在启动时崩溃,它已经在 10.7.3 和 10.7.5 上
我是一名优秀的程序员,十分优秀!