2008-09-17 80 views
4

我是一个有经验的VS.NET用户,并试图在Xcode 3.1.1上运行。
这是我想要实现的:Xcode 3.1.1和静态库

我想要一个静态库(“Lib”)拥有自己的xcodeproj文件。我想要一个可执行应用程序(“App”),它使用Lib来引用Lib的xcodeproj文件,以便对Lib的更改可以使应用程序重新链接。理想情况下,我希望能够在应用程序的Xcode工作区中编辑Lib的源文件,所以我不需要随时做任何改变。

我从联机帮助中发现,我可以简单地将静态lib xcodeproj拖动到我的应用程序项目中,并获取参考。我看到,一旦我的静态库xcodeproj在我的应用程序的项目中,我可以简单地将其拖到应用程序的目标,并了解应用程序依赖于Lib。这似乎是正确的道路,但事情并不像我想要的那样工作。

这里是我的问题:

  1. 看来,仅仅拥有应用依赖于库不会造成应用程序与库链接。似乎我必须将LibLib.a从Lib文件夹中显式拖入应用程序的“Link Binary With Libraries”构建阶段。在VS.NET中,只需将项目指定为解决方案依赖项即可将其添加到链接行中。我只是想确保我没有失去任何东西。

  2. 当我在Xcode中打开App并将Lib.xcodeproj拖入它时,我没有得到Lib的源文件。我只在lib.xcodeproj文件夹下获得libLib.a。在VS.NET中,我可以在那里编辑Lib的源文件并重新编译它等等,但是在Xcode中使用这种方法时,对lib.cpp所做的更改不会导致重建App时重新生成Lib。理想情况下,当我将Lib.xcodeproj拖放到App中时,我会得到Lib的所有源文件和目标。有没有办法做到这一点?

在此先感谢您的任何答复!

回答

9

您说的目标A取决于目标B(无论是在同一个项目中还是跨项目)是否正确而不是会导致目标A与目标B链接。你需要明确地指定它们;这是因为他们是不同的概念,你可能有目标之间的依赖关系,你要链接到对方 - 例如,通过获取目标C建成并作为一部分的命令行工具对于目标A.

而且生成过程中,你是正确的,从一个项目中引用项目B就不会让你看到在项目A的窗口B项目的源代码。这是因为Xcode没有与Visual Studio和Eclipse相同的“工作空间”模型;你上面提到的存在“一个工作区包含项目A”,但Xcode并没有真正有这样的事情,只是一个窗口代表项目答:

+1

嘿克里斯,非常感谢短,但详细的解答。我很感激! – 2008-09-18 15:23:13

4

打开应用程序项目。右键单击App目标并选择“获取信息”。然后转到“常规选项卡”并找到“直接依赖关系”。点击(+)(加号)按钮添加直接依赖关系。 Lib.xcodeproj应该出现在你的可能列表中。从该列表中选择Lib目标。

这应该完成,当你建立App目标时,Lib项目必须建立(或重建)。

(编辑我现在自己的岗位。我知道我在说这个问题一无所知点数2。我其实还在想着号码2.我不知道这是可能的或没有。)

0

我我也是一个相当新的Xcode用户。我知道的大部分知识都是从James Bucanek的一本Xcode书中学到的(ISBN 047175479x)。这是一本为X/2.2编写的较旧的书,但我发现它几乎全部适用于我今天,而且我目前使用Xcode 3.1

如果您是感兴趣。

0

我也是新手到Xcode 3.1,只是玩提到你的问题,发现你的第二个问题没有问题。任何应用程序用于编辑的依赖库的源代码,你的主要项目将重建的依赖目标。我检查了:

  1. 通过记事本应用程序编辑您的应用程序所依赖的库的源文件。
  2. 选择依赖库项目引用,鼠标右键单击,然后选择“打开方式查找器”,然后选择想要的源文件和编辑它。

一切运作良好。