導航:首頁 > 源碼編譯 > gcc編譯顯示函數沖突

gcc編譯顯示函數沖突

發布時間:2022-07-13 12:29:44

A. gcc編譯文件失敗,提示undifined reference to「函數名」。原因是連接相應的庫文件失敗,如何連接庫文件

把代碼和命令貼上

B. 如何解決gcc版本沖突

我運行 ./configure --prefix=/usr/local/gcc-2.95.3 --host=localhost --enable-threads=posix --disable-checking --enable--long-long --enable-languages=c,c++,java --with-system-zlib
提示
Created "Makefile" in /root/gcc-2.95.3
/tmp/cONf24065.pos: line 7: cc: command not found
*** The command 'cc -o conftest -g conftest.c' failed.
*** You must set the environment variable CC to a working compiler.
坐等高幫忙
linux內核版本GCC版本信息: Linux version 2.4.20-8 (bhcompile@porky.devel.redhat.com) (gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #1 Thu Mar 13 17:54:28 EST 2003 我現想gcc升級4.1.2版本誰知道造編譯器內核兼容升級誰知道該何升級我gcc所版本源碼沒二進制文件

C. gcc編譯,出現錯誤:expected 『=』, 『,』, 『;』, 『asm』 or 『__attribute__』 before ........

有時候我們編譯一個大的項目的時候,會出現很多錯誤使得屏幕堆滿了很多無用的信息。一般情況下我們需要找到首次出現錯誤的地方,在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

D. linux下用gcc編譯c出現的一些問題,請指教

你做 make 的時候,它會用預先設計好的命令來編譯,連接源代碼.你現在直接 "gcc pdf2swf.c" 就是假定整個程序只有這么一個源文件,沒有非標准庫.估計不大可能.很明顯,源文件至少還有一個 init.c.

既然你已經能做 configure, make 和 make install,不知道為什麼還要 gcc pdf2swf.c?

要用 gdb, make 的時候就必須帶有 debug 信息, g++ 是 -g, gcc 不太清楚, 打 gcc --help 查一下. 另外, make 做完後,源文件不能刪掉/移動,否則 gdb 就找不到了.

------------------

configure 會生成一個 Makefile, 打開後找 CCFLAG (通常是這個變數), 加上 -g 後再做 make 應該可以產生 debug 信息.你可以試試看.

E. Linux下編寫c語言頭文件,編譯時出現「函數未定義」

出現該錯誤的原因為編譯時只變編譯了源文件的一部分,故在鏈接時無法從編譯好的目標代碼中找到print函數,所以出錯。


根據你的源文件結構,個人推薦先單獨編譯源文件為多個object文件,再統一鏈接。

方法如下

gcc-cmain.c#-c參數的作用是讓gcc只編譯,不鏈接
gcc-ctest.c
gcc-omainmain.otest.o#將編譯好的目標代碼鏈接

當然,以上是在gcc為編譯器的前提下執行,如使用clang等其他編譯器,方法類似(clang的調用方法與gcc高度兼容)

F. Linux下 gcc編譯提示錯誤,,在函數_start中 main 未定義的引用

你是不是在編譯靜態庫或者動態庫?也就是沒有main函數。如果是,再參考一下下邊的提示。
-c 參數表示將源文件編譯成object(目標文件)。 即 gcc -c foo.c 會編譯成 foo.o
gcc 不加參數時會編譯且嘗試鏈接成可執行文件,然而 foo.c 的代碼中沒有main函數的定義,所以最終無法成功鏈接,故報錯。

G. 請問 linux下gcc編譯.c文件出現undefined reference to `stop'的錯誤是為什麼stop為自定義函數

~~~~這個沒記錯的話是鏈接的錯誤
跟include應該沒關系(當然還是建議你加上-c參數只編譯不鏈接看看還有沒有錯)

然後就是你的stop是定義在同一個文件里的么?
如果不是的話就要把兩個文件一起編譯(其實是一起鏈接)(你應該沒有吧stop函數編成一個庫吧~~~)

如果是的話那最好查一下參數類型寫對沒有,然後就是大小寫是不是對的,

如果還不行的話麻煩把代碼貼上來方便查錯

H. 關於gcc 編譯的問題

對於未聲明的函數,編譯器會默認的聲明被調用函數返回值為int, 你可以加入 -Wall 參數來打開所有的編譯告警,比如

gcc -Wall 1.c 2.c 仍然能編譯通過,但是會告訴你2.c里有未聲明的函數。

printf也是類似的被編譯器用默認的函數聲明了。

gcc鏈接的時候會自動鏈接glibc的,printf函數就在glibc里。但是如果你要使用其他庫中的函數,比如開平方的sqrt函數是math庫的函數,用它就必須在gcc的時候加入鏈接這些庫的參數,比如

gcc -lm 就會鏈接 math庫

頭文件的作用是提供函數原型聲明,以及各種類型聲明,常量定義等,是用在「編譯」時刻的,而最終產生程序的庫鏈接則是屬於「鏈接」階段的東西,與頭文件無關。

I. gcc編譯錯誤

用gcc進行編譯必須用#include 「stdio.h」命令。
另外請問你用的是什麼版本的linux,我用ubuntu寫了命令也有這樣的錯誤
但是用redhat5.4企業版加了上述命令後就沒問題了

J. 運行gcc編譯器出現問題

返回碼是1,,就說明你調用了無效的dos功能號。還有就是你的那個「winmain」函數沒有定義。

閱讀全文

與gcc編譯顯示函數沖突相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:63
Windows常用c編譯器 瀏覽:780
關於改善國家網路安全的行政命令 瀏覽:835
安卓如何下載網易荒野pc服 瀏覽:656
javainetaddress 瀏覽:106
蘋果4s固件下載完了怎麼解壓 瀏覽:1005
命令zpa 瀏覽:288
python編譯器小程序 瀏覽:946
在app上看視頻怎麼光線調暗 瀏覽:542
可以中文解壓的解壓軟體 瀏覽:595
安卓卸載組件應用怎麼安裝 瀏覽:915
使用面向對象編程的方式 瀏覽:342
程序員項目經理的年終總結範文 瀏覽:932
內衣的加密設計用來幹嘛的 瀏覽:435
淮安數據加密 瀏覽:295
魔高一丈指標源碼 瀏覽:984
松下php研究所 瀏覽:171
c回調java 瀏覽:403
夢幻端游長安地圖互通源碼 瀏覽:747
電腦本地文件如何上傳伺服器 瀏覽:315