【问题标题】:How to add static libraries inside a C++ project with Xcode如何使用 Xcode 在 C++ 项目中添加静态库
【发布时间】:2013-04-12 14:06:41
【问题描述】:

我正在使用 Xcode 4.6.1 作为 IDE 开发一个 C++ 项目。 现在,我想添加一个静态库mylib.a 和相关的头文件mylib.h

我阅读了有关 this solution 的信息,但它不起作用(在单击 Target Dependencies 时,该框仍为空)。

有没有办法完成这个任务?


更新:

我创建了一个,然后我在上面添加了文件mylib.a。它似乎工作正常,但在编译时会出现如下警告:

ld: warning: ignoring file /Users/vdenotaris/Desktop/Code/MyStaticLib/mylib.a, file was built for archive which is not the architecture being linked
(i386):/Users/vdenotaris/Desktop/Code/MyStaticLib/mylib.a

【问题讨论】:

标签: c++ xcode static-libraries static-linking


【解决方案1】:

如果您的静态库是由另一个 XCode 项目创建的并且您希望包含该项目,则使用目标依赖项,以便您可以轻松地在您的库和相应的应用程序上进行开发。

如果您想包含一个外国库,您可以在 TARGETS 下选择您的目标,然后选择 Build Phases 部分,您有区域 Link Binary With库到此区域,您可以使用 拖放+ 符号添加您的库。

要添加包含路径,请在 PROJECT 下选择您的项目,您可以在 Search Path 下选择 Build Settings 区域标头搜索路径这应该包括标头所在目录的路径。

ProjectTargets 中的设置的区别在于Project 中它为所有目标设置了默认设置。在 Targets 中,您可以更改每个 Target 的设置。

编辑 对于链接错误,这两个答案可能会有所帮助:

【讨论】:

  • 非常感谢您的回答。我在我的项目中链接了mylib.amy lib.h;现在,当我构建时,出现以下警告:ld: warning: ignoring file /Users/vdenotaris/Desktop/Code/MyStaticLib/mylib.a, file was built for archive which is not the architecture being linked (i386): /Users/vdenotaris/Desktop/Code/MyStaticLib/mylib.a。我该如何解决这个错误?
  • @vdenotaris 你在开发 iOS 应用吗?
  • 不,我正在为我的硕士论文开发一个 C++ 应用程序。
  • 请展示静态库和应用程序的架构有效架构支持的平台
  • 我认为所考虑的静态库是为 x64 构建的,而我的项目是基于 i386 架构的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 2013-06-25
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2011-06-05
相关资源
最近更新 更多