gcc make

栗子🌰

1
2
3
4
g++ -c -o main.o main.cpp
g++ -c -o sum.o sum.cpp

g++ -o main main.o sum.o

编译的时候

报错

1
2
3
4
5
6
struct Poo;
int main()
{
Poo a; or Poo* a = new Poo();
return 0;
}

正确

1
2
3
4
5
6
struct Poo;
int main()
{
Poo* a;
return 0;
}

定义和声明

extern int a;
int a;

“一个结构体/类在定义的时候会产生它的各种指针, 其中最重要的是它的函数地址表。”
Excerpt From: lexdene. “gcc五分钟系列.” iBooks.

结构体内部的成员变量是初始化分配空间的。

为什么会有编译器错误

因为有的变量是private,得看到定义才能确定是否可以这样。

请作者喝一杯咖啡☕️