gccm32編譯出錯
⑴ gcc編譯錯誤
用帶-w選項的gcc即可關閉警告,例如:
gcc -w a.c
極不推薦這么做,會讓你養成非常不好的編碼習慣
*********************************************
程序不完整,GCC是對ANSI C遵循最嚴格的編譯器,這樣隨意的代碼當然無法編譯,修改如下:
#include <stdio.h> /*注意這里*/
int main(void) /*注意這里*/
{
int a,b;
for (a=1;a<=100;a++)
{
for (b=2;b<=a;b++)
{
if((a%b)==0)
{
if(a==b)
printf ("%d \n",a);
else
break;
}
}
}
return 0; /*注意這里*/
}
⑵ gcc編譯出現錯誤怎麼辦
有時候我們編譯一個大的項目的時候,會出現很多錯誤使得屏幕堆滿了很多無用的信息。一般情況下我們需要找到首次出現錯誤的地方,在gcc中添加編譯選項可以使編譯停止在第一次出現錯誤的地方:
$ gcc -Wfatal-errors foo.c // GCC 4.0 and later$ g++ -Wfatal-errors foo.cpp
$ g++ -fmax-errors=N foo.cpp // 在出現第 N 此錯誤的時候停止編譯,GCC 4.6 and later
⑶ 在編譯的時候出現這個問題在網上找了要在gcc後面加上-m32但還是不行求解答!
加-m32後要保證所有的引用都必須是32位的,並且所有編譯過的程序需要清空並重新編譯。
⑷ 用mingw32 gcc 一編譯就出一大堆錯誤,應該怎麼解決
編譯出錯,說明代碼寫的有問題,一點點的根據錯誤去改。
如果在VC/VS下編譯通過,那就是使用了VC/VS的介面。
要改成mingw的介面,或者自己實現。
⑸ 64位linux下面的GCC如何編譯出一個32位可執行程序
理論上安裝支持環境,之後 64 位的 gcc 編譯成 32 位程序,就加 -m32 參數即可。
當然還一個辦法是裝個 32 位的 gcc 。
另外,交叉編譯也適用於 x86 架構。
不過這么編譯經常會出現各種問題,所以編譯 32 位的程序,最好還是用 32 位系統。
不一定重裝,用 chroot 和 setarch 命令配合即可弄出一個 32 位的子系統。
⑹ gcc編譯模式出錯
系統不兼容,建議在64位系統編譯一下,沒有更好的辦法
⑺ gcc 編譯32位應用怎麼編譯
您好,我來為您解答:
GCC加-m32,輸出就是32位的。記得鏈接的時候要鏈接32位的庫,不要鏈接到64位的庫上去
gcc -m32 src.c -o outputfile
如果我的回答沒能幫助您,請繼續追問。
⑻ linux64位機器編譯32位程序出現錯誤。
32 和 64 是完全兩個不同的系統。Linux 他們的兼容,完全是基於內核的雙模式切換功能,但是因為是基於內核的。所以 32 和 64 的系統函數庫就還是沒關系。
那麼,你編譯和運行 32 位程序,就需要 64 位的函數庫介面支撐。同樣 64 位程序,也需要 64 位的函數庫提供支撐。
你這個問題,教程只讓你裝了最基本的編譯器環境,但是函數支撐環境全都沒有裝,肯定是還會提示找不到需要的函數庫的。
另外,就算你這個命令裝了需要的函數庫,也肯定只是裝了 64 位的函數庫,32 位庫也沒有裝。那麼編譯 32 位程序也會出現找不到 32 位函數庫的問題的。
你這個問題,我建議你學習兩部分:
1、Linux 的依賴關系;
2、Linux 的 mutilib 相關實現。
我建議,編譯 32 的程序請用純 32 位系統。64 位系統只編譯 64 位的程序。64 位系統只可以運行 32 位程序,不要用來編譯。Linux 裡面隨便找個程序,就會依賴很多的函數庫,這對於編譯器調用來說,會很亂的。
如果真的沒有空閑機器去單獨跑 32 位系統了,我建議要麼是 chroot 環境,要麼是用交叉編譯。不過注意這兩種方式還是需要設置。
⑼ 用GCC編譯器編譯出來的程序運行出錯,請高手幫忙解決!
#include<iostream>
usingnamespacestd;
intmain(void){
inti,sum=0;
for(i=1;i<=100;i++)
sum+=i;
cout<<sum<<endl;
return0;
}
code本身完全沒有問題。我認為是你GCC沒有安裝或配置好。
⑽ 關於gcc編譯出錯的問題!
段錯誤,肯定是非法使用指針。檢查你的指針是不是越界了吧。
程序很亂,剛看清楚,b指針指向的字元串是const類型,是不能被修改的,所以你的函數是錯誤的!