Xcode C++外部变量链接器错误

Xcode C++ extern variable linker error

本文关键字:错误 链接 变量 C++ 外部 Xcode      更新时间:2023-10-16

我正在学习用C++编码,并在OS X 10.13.1上使用Xcode9.1。在尝试了解关键字extern的用法时,我遇到了以下代码的问题:

extern int foo;
#include <iostream>
int main() {
    foo = 7;
    std::cout << foo << std::endl;
    return 0;
}

运行时导致链接器错误:

Undefined symbols for architecture x86_64:
  "_foo", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我不确定为什么链接器找不到foo尽管定义是main中的第一行。

非常感谢您调查我的问题!

链接器找不到foo,因为它没有在任何地方定义。通过声明 extern int foo ',您告诉链接器定义在其他地方。删除extern,或在链接器可以找到它的位置定义foo

看看维基百科上的这个例子。

相关文章: