繁体   English   中英

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

[英]gmp.h file not found error in Xcode, mac

我在usr/local目录下载了gmp-6.0.0a.tar.xz文件和unzip(tar)。 随着人们说,我输入./configuremakemake 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添加到Other Linker Flags但不起作用。

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


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

有什么建议吗?

首先,你不应该在/usr/local解压缩它。 只需将它解压缩到您主目录中的某个位置(无所谓),然后./configure; make; make check; sudo make install ./configure; make; make check; sudo make install ./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到项目设置中的“附加标题搜索路径”(或类似的某些设置)来完成的。

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

不确定最新的GMP是否为C ++编译器选择了铿锵声。 您可以手动设置环境变量,例如CC=clang (默认为C99),并且: CXX=clang++ -std=c++11 -stdlib=libc++ (C ++ 11 dialect - 也将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/libDYLD_LIBRARY_PATH变量,除非使用链接器-rpath选项对库进行硬编码。 但是,如果问题出现,那就要担心了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM