Xcode 3.1.1 和静态库

标签 xcode macos

我是一位经验丰富的 VS.NET 用户,正在尝试在 Xcode 3.1.1 上启动和运行。
这是我要完成的工作:

我想要一个静态库(“Lib”)拥有自己的 xcodeproj 文件。我有一个可执行应用程序(“App”),它使用 Lib 来引用 Lib 的 xcodeproj 文件,以便对 Lib 的更改导致 App 重新链接。理想情况下,我希望能够在 App 的 Xcode 工作区中编辑 Lib 的源文件,这样我就不必一直忙于进行更改。

我从在线帮助中发现,我可以简单地将静态库 xcodeproj 拖到我的应用程序项目中,它会获得引用。我看到一旦我的静态库 xcodeproj 在我的应用程序的项目中,我可以简单地将它拖到应用程序的目标上,它就知道应用程序依赖于 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 的源文件和目标。有没有办法做到这一点?

  • 提前感谢您的任何回复!

    最佳答案

    您是正确的,使目标 A 依赖于目标 B(无论是在同一项目内还是跨项目)确实 不是 导致目标 A 链接到目标 B。您需要明确指定它们;这是因为它们是独立的概念,并且您可能在不想相互链接的目标之间存在依赖关系 - 例如,由 objective-c 构建并用作构建的一部分的命令行工具目标 A 的过程。

    此外,您是正确的,从项目 A 中引用项目 B 不会让您在项目 A 的窗口中看到项目 B 的源代码。那是因为 Xcode 没有与 Visual Studio 和 Eclipse 相同的“工作区”模型。您在上面提到了“包含项目 A 的工作区”的存在,但 Xcode 并没有任何这样的东西,只是一个代表项目 A 的窗口。

    关于Xcode 3.1.1 和静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/87979/

    相关文章:

    ios - 如何创建一个包含符合协议(protocol)的对象的元组?

    ios - rightBarButtonItem 出现在中间

    xcode - 什么会导致彩色 mac 应用程序图标显示为灰度?

    objective-c - 自检 OS X 代码签名

    macos - 基于文件名的 Automator 变量(Applescript?)

    java - 如何在 Linux、Mac 和 Windows 上制作安装程序?

    xcode - 在 xcode5 中在 .h 和 .m 文件之间切换的快捷方式

    ios - 如何在向后导航中获取 View Controller Storyboard ID 或 restortionIdentifier?

    ios - 从导航栏左右栏按钮项减少左侧空间和右侧空间

    xcode - NSSLider 设置起始值