📌 g++ -E main.cpp -o main.i
#include
、#define
main.i
)📌 #include <iostream>
#define A 123
📌 g++ -S main.i -o main.s
.s
檔案📌 _main:
push rbp
mov rdi, OFFSET FLAT:.LC0
call std::cout
pop rbp
ret
📌 g++ -c main.s -o main.o
.s
轉換成 機器碼(二進位的目標檔)
.o
檔案(object file)裡面包含二進位指令,但還沒能獨立執行std::cout
)std::cout
可透過加入 using 解決
📌 using namespace std;
📌 g++ main.o -o main
.o
檔案與所需的 標準函式庫(如:libstdc++)做連結std::cout
的實作在哪裡).exe
,Linux/macOS 上是無副檔名的 ELF 檔)📌 ./main
📌 #include <iostream>
using namespace std;
int main()
{
cout << "Hello World!!!" << endl;
return 0;
}
return 0