终端下编译运行一个简单C++程序流程

test1.c

#include <stdio.h>
#include "test.h"

void test1(){
    printf(add1);
}

test2.c

#include <stdio.h>
#include "test.h"

void test2(){
    printf(add2);
    for(; i > 0; i--){
        printf("%d-", i);
    }
}

test.c

#include <stdio.h>
#include "test.h"

char add1[] = "www.shellbox.cn/n";
char add2[] = "www.scriptbox.cn/n";
int i = 10; extern void test1(); extern void test2(); int main(){ test1(); printf("ok/n"); test2(); printf("%d/n", i); return 0; }

test.h

#ifndef _TEST_H_
#define _TEST_H_

extern char add1[];
extern char add2[]; extern int i; void test1(); void test2(); #endif

Makefile

test: test.o test1.o test2.o
    gcc -o test test.o test1.o test2.o
test1.o: test1.c
    gcc -c -o test1.o test1.c
test2.o: test2.c
    gcc -c -o test2.o test2.c
test.o: test.c
    gcc -c -o test.o test.c
clean:
    rm test test.o test1.o test2.o

执行:

make test

运行:

./test