1. 程式人生 > >[2018.04.28] C with Pointer

[2018.04.28] C with Pointer

name 入口 class 這樣的 b- lena BE gcc 多文件編譯

gcc -c x1.c x2.c 只編譯不連接

gcc x1.c x2.c -o output_filename 編譯後連接成可執行文件

gcc x1.o x2.o -o output_filename 連接成可執行文件

1、例如,源文件 tmp.c,單獨編譯compile並連接link
  gcc tmp.c -o tmp.exe,這樣中間生成的目標文件在鏈接過後刪除。
  好像不能寫成gcc -c tmp.c -o tmp.exe 因為-c 是只編譯不鏈接。
2、比如多個文件 B.c A.c A.h,其中B.c為main方法入口源文件,
B.c源文件如下
1 #include <stdio.h>
2
#include "A.h" 3 4 int main(void){ 5 printA(); 6 return 0; 7 }

A.c源文件如下

#include <stdio.h>
#include "A.h"
void printA(){
    printf("fuck");
}

A.h頭文件如下

void printA();

這個時候B.c要用到A.h頭文件聲明的、A.c定義的printA函數,這樣的編譯鏈接需要:

gcc -c B.c A.c 編譯生成各自的目標文件A.o和B.o

gcc B.o A.o -o main 鏈接生成main.exe可執行文件

./main 運行main.exe

或者直接用gcc A.c B.c -o main多文件編譯鏈接,生成可執行文件main

[2018.04.28] C with Pointer