2014-04-02 27 views
5

我下載了gmp-6.0.0a.tar.xz文件,並在usr/local目錄下解壓(tar)。 正如人們所說,我在gmp-6.0.0目錄中輸入了./configure,make,make checksudo make install。 安裝看起來很好。但是當我試圖像這樣測試在Xcode中找不到gmp.h文件錯誤,mac

#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文件。 我不知道爲什麼..

任何建議???

回答

5

C++的支持是配置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 

應該足夠了。

它可能需要預先考慮/usr/local/libDYLD_LIBRARY_PATH變量,如果其他系統GMP庫的安裝首先使用,除非你硬編碼庫鏈接-rpath選項。但是如果問題出現,那麼這是一件值得擔憂的事情。

+0

它的作品!非常感謝你。兩個答案非常感謝。我不知道我應該接受哪一個。 – Q123

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添加到項目設置中的「附加標題搜索路徑」(或類似的設置)中完成的。

+0

謝謝你的回答。到目前爲止它的工作。但是因爲我想添加'#include ',它也有'gmpxx.h'文件找不到的問題。 – Q123

相關問題