2010-07-04 133 views
1

我刚开始在Xcode中编程,我试图编写一个iphone应用程序。我从一个简单的Iphone开发模板开始,并从那里开始。现在我想构建一个命令行工具(用于转换数据),它重用了我的iphone项目中的一些类。我设法添加一个新的目标'convert',将适当的源代码链接到目标,使目标依赖于主目标。一切都会建立,迄今为止非常好,但它不会生成正确的可执行文件,它只会构建不能从命令行运行的build/Debug-iphonesimulator/convert(我猜是因为它没有链接到正确的库)。如何在iphone项目中构建命令行工具

~/Documents/XCode/SQLiteTutorial> ./build/Debug-iphonesimulator/convert 
dyld: Symbol not found: _OBJC_CLASS_$_NSCharacterSet 
    Referenced from: /Users/marc/Documents/XCode/SQLiteTutorial/./build/Debug-iphonesimulator/convert 
    Expected in: /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation 
in /Users/marc/Documents/XCode/SQLiteTutorial/./build/Debug-iphonesimulator/convert 
Trace/BPT trap 

这是可能的xcode在所有?我不确定你需要什么样的额外信息来回答这个问题,所以让我知道要提供什么,如果有的话。

亲切的问候, Marc van Kempen。

回答

1

如果您完全创建了一个完全不同的项目,然后将其拖入您想要重用的相关类中,而不是复制它们,只是使用了对它们的引用?将类文件拖入组&文件窗格时,请勿选择“将项目复制到目标文件夹”选项。这样你的CL项目总是使用主iPhone版本的最新版本。

尽管如此,所有在一个项目中,毫无疑问会更清洁。

+0

谢谢,我试过这个解决方案,它的工作原理。正如你所说,这不是最理想的情况,但它现在会做。仍然好奇其他人如何解决这个问题,在更大的项目中,这一定是一个问题。 – 2010-07-04 20:20:38

+0

这就是我为我的Mac/iPhone跨平台项目所做的,因为我还没有遇到过在一个项目中为两个平台构建不同目标的简单方法。我建议观看有关Xcode 4的WWDC 2010视频,因为(没有通过讨论太多来破坏NDA),这使得它更易于管理。 – 2010-07-04 22:32:27

+0

我做了同样的事,但它不起作用。我只需要使用一个类文件来完成要连接到我的命令文件中的任务,所以我只需要引用该类文件,但是当我构建项目时,它有很多错误,因为我引用的类文件使用了很多主iphone项目的基础核心类,我必须为主iphone项目中的所有文件做参考吗? – ivanceras 2010-07-28 09:46:38

0

iPhone SDK不正式支持构建命令行工具。 iPhone不运行命令行工具;至少,并非没有越狱。

+0

对不起,这并不意味着在iPhone上运行,但在我的开发机器上运行。它是一种将数据转换为iPhone应用程序所包含的工具。 所以我想要的是在同一个项目中构建一个iPhone应用程序和一个Mac OS X命令行应用程序,或者任何其他配置,这将允许我能够重用iPhone应用程序中表示数据的类。 – 2010-07-04 16:56:32

+0

有道理。请更新您的问题,并忽略我的答案:-)。 – 2010-07-05 15:59:02

相关问题