GCC編譯器變數重複定義的問題

2021-10-18 21:59:00 字數 418 閱讀 7318

在製作tft驅動時將font檔案放在檔案裡,因為gcc編譯器和mdk編譯器鏈結上的區別,會在編譯font.h時編譯一次字元變數,在其他.c或者.**件裡呼叫的時候還會再編譯一次,所以會造成重複定義的問題。

因為第一次使用gcc編譯器,所以當時想破腦袋也沒找到重複定義的地方,後來查csdn才發現gcc鏈結時候的這個問題。

2.、標頭檔案重複包含的壞處還有乙個是程式編譯會相當的慢,但是現在計算機運算能力已經不是早些時候那麼慢了。but~標頭檔案重複包含帶來的最大壞處是會使程式在編譯鏈結的時候崩潰,這是我們無法容忍的。。

1.將變數定義在.c檔案中,然後定義乙個.**件去extern這個變數,然後在其他.c檔案裡呼叫那個.**件就可以避免gcc重複定義的問題。

2.使用條件編譯解決bug。

個人偏好第一種方案,以後盡可能將變數定義在.c檔案裡。

gcc 編譯器和g 編譯器 幾個注意的問題

那麼在編譯的時候需要加入 lm 的選項,如果不加 lm 可能會報錯。gcc o test test.c lmgcc 編譯檔案字尾為.c的檔案時,編譯成編譯成c語言,編譯檔案字尾為.cpp的檔案時,編譯成c 語言。g 編譯.c cpp檔案時,只編譯成c 語言。gcc編譯字尾為.c的檔案有更少的預定義巨...

gcc編譯器的鏈結 裝載問題

gcc是一款linux系統上普遍使用的輕便型 編譯工具,在bash shell下通過命令列操作可完成程式 的編譯 彙編 鏈結工作。gcc基本編譯指令格式如下 gcc o executefile sourcefile.c l 庫檔案路徑 l 動態庫名字 i 標頭檔案路徑 編譯時,gcc按照從右向左的順...

gcc編譯器簡介

在linux中選擇gcc編譯器的原因是gcc執行效率高。gcc基本用法 gcc options filename 其中options為編譯選項。例子 執行指令 gcc hello.c 則對hello.c進行編譯,如果程式沒有語法錯誤,則產生可執行檔案a.out gcc預設檔名 執行可執行檔案指令 a...