我是一位经验丰富的VS.NET用户,并尝试在Xcode 3.1.1上运行.
这就是我想要完成的事情:
我想要一个静态库("Lib")拥有自己的xcodeproj文件.我有一个可执行应用程序("App"),它利用Lib来引用Lib的xcodeproj文件,这样对Lib的更改会导致App重新链接.理想情况下,我希望能够在App的Xcode工作区内编辑Lib的源文件,这样我就不必一直在进行任务来进行更改.
我从在线帮助中发现,我可以简单地将静态lib xcodeproj拖到我的应用程序项目中,然后获取引用.我看到,一旦我的静态lib xcodeproj在我的应用程序的项目中,我可以简单地将其拖到App的目标,它理解App依赖于Lib.这似乎是正确的道路,但事情并没有像我想象的那样发挥作用.
这是我的问题:
看起来简单地让App依赖于Lib并不会导致App与Lib链接.看来我必须将LibLib.a从Lib文件夹中显式拖到App的"Link Binary With Libraries"构建阶段.在VS.NET中,只需将项目指定为解决方案依赖项即可将其添加到链接行.我只是想确保我没有遗漏任何东西.
当我在Xcode中打开App并将Lib.xcodeproj拖入其中时,我没有得到任何Lib的源文件.我只在"Lib.xcodeproj"文件夹下获得libLib.a.在VS.NET中,我可以在那里编辑Lib的源文件并重建它等等......但是在Xcode中使用这种方法,在重建App时,对Lib.cpp的更改不会导致Lib重建.理想情况下,当我将Lib.xcodeproj拖到App中时,我会得到所有Lib的源文件和目标.有没有办法做到这一点?
在此先感谢任何回复!
你正确的,使得一个目标依赖于目标B(无论是在同一项目内或跨项目)并不会造成目标A到针对目标B.你需要明确指定它们链接; 这是因为它们是独立的概念,并且您可能在目标之间存在依赖关系,这些目标不希望彼此链接 - 例如,由目标C构建的命令行工具,并用作构建的一部分目标A的过程.
另外,你是正确的,从项目A中引用项目B不会让你在项目A的窗口中看到项目B的源代码.那是因为Xcode没有与Visual Studio和Eclipse相同的"工作空间"模型; 你上面提到"包含项目A的工作空间"的存在但是Xcode实际上没有任何这样的东西,只是一个代表项目A 的窗口.