在Xcode,mac中找不到gmp.h文件错误

时间:2014-04-02 00:30:52

标签: c++ c xcode macos gmp

我在gmp-6.0.0a.tar.xz目录中下载了usr/local文件并解压缩(tar)。 正如人们所说,我在./configure目录中输入了makemake checksudo make installgmp-6.0.0。   安装似乎很好。但当我试图像这样测试时

#include <stdio.h>
#include <gmp.h>
#include <gmpxx.h>


int main(int argc, const char * argv[])
{

    // insert code here...
    printf("Hello, World!\n");
    return 0;
}

它找不到gmp.h文件的错误。 我将-lgmp添加到其他链接器标志但不起作用。

我不知道如何处理这类问题。有人可以帮忙吗?


谢谢Dietrich Epp。 现在我没有找到gmp.h文件的错误但是 我找不到gmpxx.h文件。 我不知道为什么..

任何建议???

2 个答案:

答案 0 :(得分:5)

首先,你不应该在/usr/local中解压它。只需将其解压缩到您主目录中的某个位置(这没关系),然后./configure; make; make check; sudo make install

您的问题可能是因为编译器没有搜索/usr/local/include

  1. 检查/usr/local/include/gmp.h是否存在。如果它不存在,GMP安装不正确(或安装在不同的位置)。

  2. -I/usr/local/include添加到编译器标志中。在Xcode中,这是通过将/usr/local/include添加到&#34;其他标题搜索路径&#34;来完成的。在项目设置中(或类似的设置)。

答案 1 :(得分:5)

配置GMP时,默认情况下支持 。解压缩包,并配置:./configure --prefix=/usr/local --enable-cxx - 这也将安装gmpxx.h标头以及libgmpxx.dylib和/或libgmpxx.a

不确定最新的GMP是否为C ++编译器选择了铿锵声。您可以手动设置环境变量,例如CC=clang(默认为C99)和:CXX=clang++ -std=c++11 -stdlib=libc++(C ++ 11方言 - 也将C ++ 11选项传递给链接器)。同样,这可能是不必要的。

您的测试,因为它包含C ++,必须构建为C ++应用程序。此外,libgmpxx.dylib本身与libgmp.dylib相关联,因此对于简单的C ++测试程序:

$CXX -I/usr/local/include gmptest.cc -o gmptest -L/usr/local/lib -lgmpxx

应该足够了。

如果首先使用其他系统GMP库安装,则可能需要将/usr/local/lib添加到DYLD_LIBRARY_PATH变量,除非您使用链接器-rpath选项对库进行硬编码。但是,如果问题出现,那就要担心了。