gcc編譯告警視為錯誤
㈠ gcc編譯錯誤!
提示說需要-fPIC編譯,然後在鏈接動態庫的地方加上-fPIC的參數編譯結果還是報錯,需要把共享庫所用到的所有靜態庫都採用-fPIC編譯一邊才可以成功的在64位環境下編譯出動態庫。
這里的-fPIC指的是地址無關代碼
你看看這里的這篇文章吧:http://www.cnblogs.com/lightsalt/archive/2011/10/19/2217628.html
㈡ 請教gcc編譯下的幾個警告該怎麼去除
C 語言源程序中的錯誤分為幾類,其中有:必須要修改的錯誤(例如:語法錯誤),這類錯誤如果不進行修改,那麼源程序就無法編譯通過和運行;另外還有就是:警告錯誤(例如:對某個變數沒有賦初值就使用它),該類錯誤就是:編譯器能夠讓你的源程序通過,但是你在運行源程序時,得到的運行結果卻未必是正確的(例如:編寫一個累加器的程序,如果不對總和進行清零,那麼每運行一次,結果可能就會是隨機的)。所以說,如果 gcc 編譯器下提出了警告錯誤,你就必須要仔細閱讀源程序,找出其相對應的BUG來,這樣才能夠確保你的程序運行結果是正確的。
㈢ 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編譯錯誤,請問如何解決hidden symbol
貌似,是mltest這個符號的浮點型沒有定義,你需要找到它需要鏈接的庫,這個具體我也不知道,你在看看,好像你這個是嵌入式相關。
在Windows環境下,直接輸出重新向不行。
安裝C-Free4.0(免費版),用它打開你的C源代碼文件 c:\1.c,編譯,在窗口下方就會給出錯誤提示信息,滑鼠右鍵單擊提示信息,選擇「全部復制」,打開記事本,粘貼,另存該文件 c:\1.txt 就可以了。
另外,C-Free 4.0 用的是 MinGW 2.95 的編譯器,也是GCC的一個版本。
㈤ gcc編譯C語言報警告
open
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>蔽高
int open(const char *pathname, int flags);
int open(const char *pathname,
int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
-------------------------
openat
#include <fcntl.h>
int openat(int dirfd, const char *pathname, int flags);
int openat(int dirfd, const char *pathname, int flags, mode_t mode);
-------------------------
lseek
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
你可以看
man 2 open
man 2 openat
man 2 lseek
--------------------------
問題是否為:
#include <宏扒尺sys/types.h>
#include <sys/stat.h>
頭此滑文件缺失?
㈥ Xcode 在用gcc編譯的時候出現警告
代碼的運行編譯是從上往下的,出現這個警告的原因是你寫的某個函數裡面調用了另一個函數,而這個另一個函數是第一次出現,系統辨認不出,當然你是寫在了下面。
所以解決這個問題有兩個方法:1在代碼最上端聲明所有函數。 2把該函數內調用的函數寫到該函數的上面。
㈦ gcc編譯,出現錯誤:expected 『=』, 『,』, 『;』, 『asm』 or 『__attribute__』 before ........
這個我也遇到了,有畢皮以下幾種可能:
1,有可能是漏寫;}或者將)寫成},或者是中英文混寫,如將英文的)寫成中文的)。
2.機器碼本身的問題,需要對數據類型進行typedef,如,使用int類型或者 char類型,分別進行定義,typedef in DTYPE,typedef char PCHAR,這一點沒核培試驗過,是看別人的
3.沒有加上需要的頭文件。這一點我碰到了,很神奇。
4.C和C++混編,如在C中使用class inline等,需要加上extern告訴編譯器。因為C和C++的編譯時找不同的內部代碼,如果不告訴他,他會找一種,比如說全部找C的內部解釋,那麼C++部分的就會出錯;
5、明顯的錯誤,比手氏差如c代碼,結果寫了個函數 bool testIt;而bool默認沒有定義,所以報錯;改成int的就行了;