我对gcc比较陌生,目前使用的是“gcc (tdm-1) 5.1.0”版本。无意中遇到了一个非常奇特的情况。我将问题缩小到一个非常小的可重复示例...
main.cpp
extern int g;
int main(){
return g;
}
someOtherFile.cpp
#include<windows.h>
RECT g;
我用以下内容编译
gcc -c someOtherFile.cpp
gcc main.cpp someOtherFile.o
这将会无误地链接。
我是否遗漏了什么,为什么允许进行此链接?
extern
变量在其他地方被定义,因此gcc会搜索定义并在.o
文件中找到它。 - ForceBruRECT
只是int
的别名?你应该查找该类型的定义。 - ForceBru