導航:首頁 > 源碼編譯 > gmp編譯不了

gmp編譯不了

發布時間:2022-08-11 15:00:51

1. Fedora14 安裝gmp時出錯 configure: error: could not find a working compiler

似乎gcc並未安裝,錯誤提示並未找到一個可工作的編譯
安裝gcc

2. windows下如何用cygwin 編譯gmp

cygwin可以編譯生成windows下供調用的dll,包括vc可識別的lib。

Cygwin-GCC : Cygwin自帶了一個GCC,用於把C/C++-Source編譯成Cygwin平台下的EXE/DLL (使用Cygwin必須用其自帶的GCC, 因為內部會生成一些針對於平台的特定的初始化代碼,如果用其餘版本的GCC則很有可能導致程序不能正常運行.)

Cygwin-GCC : Cygwin自帶了一個GCC,用於把C/C++-Source編譯成Cygwin平台下的EXE/DLL (使用Cygwin必須用其自帶的GCC, 因為內部會生成一些針對於平台的特定的初始化代碼,如果用其餘版本的GCC則很有可能導致程序不能正常運行.)

說明 - Cygwin-GCC :

在Cygwin-Shell中可直接使用gcc .如下 :

gcc -shared xxx.c -o xxx.dll //編譯成DLL, 注意,Cygwin-GCC默認導出所有的Function.

gcc -c xxx.c -o xxx.o //編譯成OBJ

gcc xxx.c -o xxx.exe //編譯成EXE

ar r xxx.lib xxx1.o xxx2.o //打包多個obj成一個Lib (非連接)

gcc xxx.c ./L aaa.dll -o xxx.exe //引用外部DLL生成EXE

gcc xxx.c yyy.c -o zzz.exe //連接多個C文件,生成EXE.

gcc -I"/bin/include"-c xxx.c -o xxx.o //引用/bin/include目錄下頭文件,生成OBJ

gcc -L"dll.a" xxx.c -o xxx.exe //連接dll.a,生成EXE

如果想知道編譯時具體的信息,可以使用--verbose這個編譯選項,對於了解GCC的工作是很有幫助的.

額外的,也可以寫自己的導出Lib文件,以方便其餘程序引用DLL (如Cobol2002編譯器就不支持直接引用DLL, 這個時候可以寫一個Def,並導出Lib文件,便於Cobol2002使用)

具體方法如下:

1. 編譯生成DLL :

如: gcc -shared MyTest.c -o MyTest.dll, 生成MyTest.dll.

2. 寫一個DEF文件 (這里是MyTest.def),簡單的格式大致如下:

LIBRARY MyTest //這里的MyTest對應於MyTest.dll
EXPORTS
AllocMemory @1 //導出的第一個function : 對應於MyTest.dll裡面的AllocMemory(...), 注意,參數可不用寫
ReadMemory @2 //導出的第二個function : 對應於MyTest.dll裡面的ReadMemory-Function.

//注意:function可以不用全部導出,可以只選擇你需要的Function.

3. 用LIB工具(VC6有提供)生成LIB文件 (這里是MyTest.lib) :

lib /def:MyTest.def //默認生成的名稱為MyTest.lib.

4. 到此生成完畢,連接的時候只需要引用MyTest.lib即可,但要注意XXX.exe 和MyTest.dll要放在同一目錄下.

可以用 gcc --help 查看具體的命令 etc...

3. linux 小白 安裝gmp錯誤

根據你的提示,是因為沒有安裝gcc編譯器。建議在你的電腦上先安裝gcc編譯器。

4. gmp如何編譯安裝php已經裝好了,想增加這個模塊。

cd gmpphpize./configuremake && make install

5. 如何在windows下編譯GMP軟體包

1、下載GMP源代碼,展開到d:/gmp
http://gmplib.org/#DOWNLOAD
2、下載MinGW windows下的GNU C編譯器
http://sourceforge.net/project/showfiles.php?group_id=2435
中的AutoMated MinGW Installer下載完後執行,選擇下載並安裝
安裝選項選擇第一,二和最後共三個組件,安裝在d:/minGW
3、 http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe?modtime=1079444447&big_mirror=1
下載MSYS MinGW的輔助環境
安裝到d:/msys,安裝時有兩個提示,第一個提示輸入Y, 第二個提示輸入MinGW安裝路徑d:/MinGW

完成後桌面出現msys快捷方式

4、進入d:/msys/1.0/etc編輯fstab文件
加入行
d:/gmp /gmp

5、點擊msys進入環境
cd /gmp進入gmp虛擬路徑
依次執行(每個都會執行很長時間)
./configure
make
make install
則編譯出靜態包
如果執行
./configure --disable-static --enable-shared
make
make install
則編譯出dll

6. linux初始建立初始編譯器時,怎麼不論裝新版本還是老版本,都報錯..

你用包管理工具吧,會處理依賴
要不你就得先裝了gmp mpfr mpc,注意版本要求
然後./configure的時候加上--with-gmp,--with-mpfr and/or --with-mpc參數

7. 安裝gmp後怎樣編譯cpp文件

gmp安裝及使用摘要

GNU Multiple Precision Arithmetic Library

首先,去libgmp官網下載最新的gmp包。(我下的是gmp-5.1.0)

然後gmp-5.1.0.tar.bz2。使用命令

tar -jvxf gmp-5.1.0.tar.bz2

進入gmp-5.1.0文件夾

cd gmp-5.1.0

接下來比較關鍵,在使用configure的時候要加上 --enable-cxx命令,否則不能使用c++庫gmpxx.h(今年寒假的時候沒加這個命令也可以,但現在貌似不行了- -)

./configure --enable-cxx

然後

make

make check

最後

sudo make install

就安裝完成了。

可以試著編寫一個樣常式序:

#include<gmpxx.h>
using namespace std;
int main()
{
mpz_t a, b, c, d;
mpz_init(a);
mpz_init(b);
mpz_init(c);
mpz_init(d);
//計算2的1000次方
mpz_init_set_ui(a, 2);
mpz_pow_ui(c, a, 1000);
gmp_printf("c = %Zd\n", c);

//計算12345678900987654321*98765432100123456789
mpz_init_set_str(b, "12345678900987654321", 10);//10進制
mpz_init_set_str(c, "98765432100123456789", 10);
mpz_mul(d, b, c);
gmp_printf("d = %Zd\n", d);
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
mpz_clear(d);
return 0;
}

以上程序貌似是C的,編譯時使用:

gcc name.c -o name.o -lgmp

對於C++,編碼會方便一些:

#include<iostream>
#include<gmpxx.h>
using namespace std;
int main()
{
mpz_class a;
//計算2的1000次方,似乎C++就沒有數學函數支持了?
a = 1;
for(int i = 0; i < 1000; i++)
a *= 2;
cout<<"2^1000 = "<<a<<endl;
//計算-12345*9876543210123456789
mpz_class b, c;
b = -12345;
c = "98765432100123456789";
cout<<"b * c = "<<b * c<<endl;
return 0;
}

編譯用:

g++ name.cpp -o name.o -lgmpxx -lgmp

8. arm-linux-gcc編譯openssl、pbc、gmp庫問題

你用的是什麼環境?要麼就是缺少庫,要麼就是缺少資源依懶,都是這些問題!

9. vs2017使用gmp類庫時輸入輸出符號無法解析外部符號

我在vs2008環境下面遇到了這個問題總算自己解決了如果選擇的是win32而非x64配置,對應的庫目錄一定要設置到x86而非x64在win32配置下使用x64 directx 庫就會出現這種情況解決方法:假設directx目錄為 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\則對於win32配置項目->屬性->C/C++->常規->附加包含目錄 添加 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include項目->屬性->鏈接器->常規->附加庫目錄 添加 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86然後選擇全部重新編譯我就是這樣解決了這個問題

閱讀全文

與gmp編譯不了相關的資料

熱點內容
c語言javaphp 瀏覽:804
程序員技術不分高低嗎 瀏覽:619
dos不是內部或外部命令 瀏覽:708
PC機與單片機通訊 瀏覽:674
二級加密圖 瀏覽:113
壓縮機異音影響製冷嗎 瀏覽:711
德斯蘭壓縮機 瀏覽:490
程序員太極拳視頻 瀏覽:531
網上購買加密鎖 瀏覽:825
安卓為什麼軟體要隱私 瀏覽:83
虛擬主機管理源碼 瀏覽:811
java圖形圖像 瀏覽:230
單片機輸出口電平 瀏覽:486
java配置資料庫連接 瀏覽:479
java多態的體現 瀏覽:554
java的split分隔符 瀏覽:128
跪著敲代碼的程序員 瀏覽:238
web和php有什麼區別 瀏覽:120
加密的電梯卡怎麼復制蘋果手機 瀏覽:218
warez壓縮 瀏覽:137