如何链接Xcode 4中的库?

时间:2011-07-29 08:35:02

标签: c xcode xcode4 gmp

我是Apple Xcode的完全初学者,但我已经遵循了Xcode文档以及一些相关问题的建议而没有成功。

我将GMP安装到/ usr / local / bin,使用该库编写了一个简短的程序,并使用gcc main.c -lgmp编译。它编译时没有任何警告或错误,可执行文件完美无缺。

我启动了一个新的Xcode项目(命令行工具;类型:C),将代码复制到新创建的main.c,并打开项目构建设置。从那里我设置链接>其他链接器标志-lgmp搜索路径>图书馆搜索路径/usr/local/bin。但是,构建失败,预处理程序错误“Gmp.h:没有这样的文件或目录”。

我已经尝试了几乎所有可以想象的标题:

#include "gmp.h"

#include <gmp.h>

#include "gmp"

#include "libgmp.a"。 。

这是我过去三个月的主要障碍,这使我无法学习C.任何帮助我获得最终解决方案都会受到高度赞赏。

2 个答案:

答案 0 :(得分:8)

您必须在Xcode项目中设置一些内容。例如,我在/opt/gmp/5.0.2中安装了gmp,我将以此为例。实际的库安装在/opt/gmp/5.0.2/lib中,头文件安装到/opt/gmp/5.0.2/include中。安装库设置时, - PREFIX 标志将/opt/gmp/5.0.2自动处理。如果未设置此标志,则前缀通常默认设置为/usr/local

  1. 其他链接标记看起来正确,它应该是库的名称。
  2. 标题搜索路径设置为包含目录,在我的情况下为/opt/gmp/5.0.2/include
  3. 库搜索路径设置为lib目录,在我的情况下为/opt/gmp/5.0.2/lib
  4. 由于已设置标题搜索路径,您现在应该能够包含头文件,如下所示:

    #include <gmp.h>
    

    当然,将/opt/gmp/5.0.2替换为安装gmp时使用的PREFIX路径。

    最后,您通常不会将库安装到/usr/local/bin,您可以安装到/usr/local并将任何二进制文件安装到bin中,而像这样的库将安装到lib中。当然任何路径方案都可以使用,我通常建议使用/opt/<project-name>/<version-number>,因为它可以让我更好地跟踪我已安装的内容,并且可以使用相同库和工具的多个版本,而无需处理冲突。

答案 1 :(得分:2)

我已将系统从雪豹更新为山狮,并且必须安装gmp

首先我安装了 Xcode CommandLineTools设置。

其次,安装 Homebrew 。然后,我已经在这个主题中完成了步骤:https://apple.stackexchange.com/questions/38222/how-do-i-install-gcc-via-homebrew

在我的最后一步,正如同事Marcus Karlsson所说,对xcode项目进行了更改。 它终于奏效了!非常感谢你:))