【发布时间】:2013-02-16 19:12:37
【问题描述】:
我尝试将 Apple 的 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)
我已经在网上搜索过,并且一直在检查我复制两次的所有代码,添加了所有框架,并包含了标头。有人可以帮我找出问题所在,或者更好地解释这意味着什么,以便我将来自己解决吗?如何找出 NetworkManager 类中的问题?在编译之前我没有收到任何错误。
谢谢
---编辑--- 忘了提到我只需要示例中的代码的 PUT 部分,我只检查那部分。其余的都没有被复制过来。我复制了 NetworkManager.h、NetworkManager.m 并从 PUT 文件中复制了我需要的部分代码。
【问题讨论】:
-
可能您正在使用属于 iOS 的框架,并且因为目标是 OS X,它不会编译?只是猜测。
-
嗯,如果框架是用于 IOS 的,那么那个 simpleFTPsample 怎么能移植到 OSX 上呢?我怎样才能找到那个特定的框架是什么?
-
唯一的框架是cfnetwork,似乎与OSX兼容
-
清理然后重新构建。您对 NetworkManager.m 有任何编译错误吗? NetworkManager.m 是否被编译过?
-
您可以通过查看构建日志来查看它是否已编译(不要与构建导航器混淆;构建日志在日志导航器中)。对于 Xcode 尝试编译的每个模块,您应该有一个“Compile whatever.m”行。
标签: objective-c cocoa frameworks linker