惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
N
Netflix TechBlog - Medium
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
V
Visual Studio Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
Hugging Face - Blog
Hugging Face - Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
博客园 - 【当耐特】
B
Blog
Stack Overflow Blog
Stack Overflow Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
GbyAI
GbyAI
博客园 - 司徒正美
博客园 - 叶小钗
Y
Y Combinator Blog
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - Xuemin_Zhang

Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. 国外7个源代码/库搜索引擎网站 【转】屏蔽优酷、土豆等视频网站15秒广告的最全最简单方法 QT编译之错--”Basic XLib functionality test failed!” [转]国内地图服务可用性比较 Ubuntu下安装jdk Linux下解压缩命令汇总 SlickEdit 2010破解 C++ std::pair 与 std::make_pair NetBeans IDE 配置qmake在qvfb下开发 - Xuemin_Zhang Navit学习笔记(六)-- Navit的attr模型 Navit学习笔记(五) Navit学习笔记(四) C语言宏定义中#与##的用法 - Xuemin_Zhang - 博客园 Navit学习笔记(三) Navit学习笔记(二) Navit学习笔记(一) 论文答辩PPT制作攻略 Qt乱码问题 - Xuemin_Zhang - 博客园
[转]gcc交叉编译错误之一: multiple definition of - Xuemin...
Xuemin_Zhang · 2010-08-28 · via 博客园 - Xuemin_Zhang

1、问题:在common.h中放着“全局变量”:包括函数和变量,在其他*.cpp文件中包含#include "common.h",交叉编译时,出现multiple definition问题;        

2、原因:由于工程中的每个文件都是独立的解释的,即使头文件有:
#ifndef _x_h
....
#enfif
在其他文件中只要包含了common.h 就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。

3、解决方案:在common.c(或.cpp) 中声明变量,然后建一个头文件common.h 在所有的变量声明前加上extern关键字,如 extern int testNum(int eventNumber);注意这儿不要有变量的初始化语句。然后在其他需要使用全局变量的 c文件中包含common.h 文件而不要包含 common.cpp 文件。编译器会为common.cpp生成目标文件,然后连接时,在使用全局变量的文件中就会连接到此文件。