c++ - g++ 链接器问题

标签 c++ g++

我试图理解 C++ 中的关键字 extern 并编写了一段简短的代码来概述其含义。不幸的是我做错了什么

bla.h

int bla = 4;

测试.cpp

#include <iostream>

using namespace std;

int main() {
       extern int bla;
       cout << bla << endl;
}

g++ -o test bla.h test.cpp
/tmp/ccED67jz.o: In function `main':
test.cpp:(.text+0xa): undefined reference to `bla'
collect2: ld returned 1 exit status

最佳答案

extern,您描述的用法仅适用于全局变量:

bla.cpp

int bla = 4;

测试.cpp

#include <iostream>

extern int bla; // use the global from bla.cpp as a global in this file

int main(int argc, char *argv[]) {
    std::cout << bla << "\n";
    return 0;
} 

关于c++ - g++ 链接器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438698/

相关文章:

java - 从 C++ 回调到 Java

c++ - Ubuntu和make中的模板编译错误

C++非整数模板Const初始化预期在ClassName之前的init-declarator

java - 如何将c代码移植到java中?启动说明

c++ - cout <<字符串流

c++ - 将 QGraphicsItems 附加到 QGraphicsItemGroup 会导致崩溃

makefile - 在 makefile 中从 g++ 切换到 clang++

c++ - 当一个参数是函数的返回值时调用 pow() 时出现链接器错误

android - 即使在 CMake 中构建 Release 时,也会在最终 SO 文件中获取调试符号

c++ - Understanding floating point variables and operators in c++(也可能是书上的错误)