arm-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -o start.o start.s 什麼意思? 2020-11-21
目錄
1、arm-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -o start.o start.s
-nostdlib:【No Standard Library 】
2.1 Makefile中的-Wall -O2 -Os -g等選項介紹
1、arm-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -o start.o start.s
Wall:【Warning all】
選項可以列印出編譯時所有的錯誤或者警告資訊。這個選項很容易被遺忘,編譯的時候,沒有錯誤或者警告提示,以為自己的程式很完美,其實,裡面有可能隱藏著許多陷阱。變數沒有初始化,型別不匹配,或者型別轉換錯誤等警告提示需要重點注意,錯誤就隱藏在這些程式碼裡面。沒有使用的變數也需要注意,去掉無用的程式碼,讓整個程式顯得乾淨一點。下次寫Makefile的時候,一定加-Wall編譯選項。
-O0:【Optimize 優化】
表示編譯時沒有優化。
-O1: 表示編譯時使用預設優化。
-O2: 表示編譯時使用二級優化。
-O3: 表示編譯時使用最高階優化。
-Os:相當於-O2.5優化,但又不所見程式碼尺寸,具體見連結:點選開啟連結 點選開啟連結
-nostdlib:【No Standard Library 】
不連線系統標準啟動檔案和標準庫檔案,只把指定的檔案傳遞給聯結器。這個選項常用於編譯核心、bootloader等程式,它們不需要啟動檔案、標準庫檔案。
從 gcc linker docs,
-nostdlib
Do not use the standard system startup files or libraries when
linking. No startup files and only the libraries you specify will be
passed to the linker, and options specifying linkage of the system
libraries, such as -static-libgcc or -shared-libgcc, are ignored.
因此使用,
-nodefaultlibs
連結時請勿使用標準系統庫.只有您指定的庫才會傳遞給連結器,指定系統庫連結的選項(如-static-libgcc或-shared-libgcc)將被忽略.除非使用-nostartfiles,否則標準啟動檔案將正常使用.編譯器可能會生成對memcmp,memset,memcpy和memmove的呼叫.這些條目通常由libc中的條目解析.指定此選項時,應通過其他機制提供這些入口點.
2、參考連結
2.1 Makefile中的-Wall -O2 -Os -g等選項介紹
2.2 gcc – g,靜態初始化和-nostdlib
http://www.voidcn.com/article/p-kiqmapwv-btm.html
2.3 編譯時“-nostdlib”的使用
https://blog.csdn.net/weibo1230123/article/details/82817006
2.4 使用GNU編譯器集合(GCC)官方手冊
https://gcc.gnu.org/onlinedocs/gcc/index.html#SEC_Contents
https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html
相關文章
- C++中::是什麼意思C++
- "->" 在c語言中是什麼意思?C語言
- c++中 -> 是什麼意思,如何使用C++
- C/S結構是什麼意思?有什麼優點?
- C++ 這個語句中[&]是什麼意思C++
- [C++] cin, cout, clog, cerr中的c是什麼意思C++
- CRM什麼意思?有什麼用?
- c++ 原始碼中&&變數是什麼意思呢?C++原始碼變數
- Symmathesy是什麼意思?
- python 是什麼意思Python
- HTML是什麼意思?HTML
- ITIL是什麼意思?ITIL是什麼?
- bucket是什麼意思?有什麼作用?
- RDP是什麼意思?有什麼用?
- LDAP是什麼意思?有什麼用?LDA
- c51中bdata是什麼意思及使用方法
- BGP是什麼意思,一般的BGP機房是什麼意思
- 效能最佳化:編譯器最佳化選項 -O2/-O3 究竟有多強大?編譯
- js 中~~是什麼意思?JS
- 加簽是什麼意思?
- mysql中是什麼意思?MySql
- python中len什麼意思Python
- fluent python是什麼意思Python
- jquery庫是什麼意思jQuery
- 原生IP是什麼意思?有什麼作用?
- Python是什麼意思?Python有什麼用?Python
- DigiCert是什麼意思 具備什麼作用
- 原生IP是什麼意思?有什麼優勢?
- 原生IP是什麼意思?有什麼亮點?
- JQuery中$(document)是什麼意思有什麼作用jQuery
- Linux中gpgcheck是什麼意思?作用是什麼?LinuxGC
- Linux是什麼意思?Linux有什麼特點?Linux
- Python是什麼意思?Python幹什麼用的?Python
- 什麼是API介面,具體是什麼意思?API
- DRBD是什麼意思?優缺點是什麼?
- C語言中的關鍵字有哪些,分別代表什麼意思C語言
- solid在css中什麼意思SolidCSS
- isVerified () 和 verified () 是什麼意思?