c++多文件使用全局变量的方法
来源:互联网 发布:云计算就业前景 编辑:程序博客网 时间:2024/05/27 19:25
开始错误的做法
在global.h声明并定义变量
int sharedData = 9;编译出错
Building target: CTestInvoking: GCC C++ Linkerg++ -o "CTest" ./src/CTest.o ./src/global.o ./src/global.o:(.data+0x0): `sharedData'被多次定义./src/CTest.o:(.data+0x0):第一次在此定义collect2: 错误: ld 返回 1
正确的做法,
在global.h头文件声明
extern int sharedData ;
在global.cpp定义初始化
int sharedData = 9;
然后在其他文件直接调用就可以了
int main(void){cout<<sharedData<<endl;return 0;}
不用包含头文件,直接在调用之前声明一下也可以。
extern int sharedData ;
看一下编译
make all Building file: ../src/CTest.cppInvoking: GCC C++ Compilerg++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/CTest.d" -MT"src/CTest.d" -o "src/CTest.o" "../src/CTest.cpp"Finished building: ../src/CTest.cpp Building file: ../src/global.cppInvoking: GCC C++ Compilerg++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/global.d" -MT"src/global.d" -o "src/global.o" "../src/global.cpp"Finished building: ../src/global.cpp Building target: CTestInvoking: GCC C++ Linkerg++ -o "CTest" ./src/CTest.o ./src/global.o Finished building target: CTest
第一步
CTest.cpp编译为CTest.o 此处其实用到了global文件的变量,由于此阶段只需要包含头文件,让CTest.cpp知道global文件变量的声明即可。
第二部
global.cpp编译为global.o
第三部
链接CTest.o和global.o ,生成可执行文件CTest。
2 0
- c++多文件使用全局变量的方法
- 全局变量在多个c文件中公用的方法
- C语言全局变量多文件使用
- C语言全局变量多文件使用
- C语言全局变量多文件使用
- C语言全局变量多文件使用
- C语言全局变量多文件使用
- C语言:全局变量在多个c文件中公用的方法
- C语言:全局变量在多个c文件中公用的方法
- C语言:全局变量在多个c文件中公用的方法
- C语言:全局变量在多个c文件中公用的方法
- C语言:全局变量在多个c文件中公用的方法
- C语言:全局变量在多个c文件中公用的方法
- C语言:全局变量在多个c文件中公用的方法
- C语言:全局变量在多个c文件中公用的方法
- C语言:全局变量在多个 c 文件中公用的方法
- C语言:全局变量在多个c文件中公用的方法
- C语言:全局变量在多个c文件中公用的方法
- 设计模式第二站--策略模式
- ps字体怎么安装
- PythonChallenge闯关游戏——第6-10关
- Andriod Timer 及 Handler 线程间通信
- C++中的虚函数的隐藏规则
- c++多文件使用全局变量的方法
- 基于ZooKeeper的Dubbo注册中心
- 数值分析-迭代算法
- 动态的获取和设置控件的长和宽
- JBPM 中Signavio web的安装过程
- oracle数据库的静默状态
- OpenCV中矩阵数据的访问(二)
- 【C++专题】static_cast, dynamic_cast, const_cast探讨
- android 比较靠谱的图片压缩