首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
编程技术
发新帖
0
0
[求助]驱动编译包含重复头文件导致连接错误
发表于: 2014-3-20 16:16
6564
[求助]驱动编译包含重复头文件导致连接错误
silence刘
2014-3-20 16:16
6564
正如题目所示,因为需要在一个驱动工程的两个.c后缀名的文件中需要重复包含同一个.h后缀名的头文件。
头文件中无论是使用如下
#ifndef _TEST_H
#define _TEST_H
#endif
亦或者使用
#pragma once
使用build编译之时都会导致连接错误。
注:头文件中定义有全局变量。
但是如果我前面使用了仅编译一次,这些全局变量应该不会重复定义啊?
[注意]APP应用上架合规检测服务,协助应用顺利上架!
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
12
)
IamHuskar
雪 币:
1372
活跃值:
(5383)
能力值:
( LV13,RANK:240 )
在线值:
发帖
76
回帖
1664
粉丝
71
关注
私信
IamHuskar
4
2
楼
extern
2014-3-20 16:44
0
silence刘
雪 币:
79
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
17
回帖
225
粉丝
0
关注
私信
silence刘
3
楼
全部加了extern还是不行。而且我觉得前面有#pragma once这种,编译过一次就不会再次编译为什么会出现重复定义错误。。。
2014-3-20 17:16
0
whnet
雪 币:
185
活跃值:
(25)
能力值:
( LV2,RANK:10 )
在线值:
发帖
22
回帖
1029
粉丝
0
关注
私信
whnet
4
楼
once 跟编译没有关系 的。 那玩意叫做重复包含。 意思是不会导致嵌套或重复包含。
但你的两个C文件独立 又是全局变量。就会导致两个相同名字的全局变量出来了。 链接时会出错的。
2014-3-20 18:56
0
silence刘
雪 币:
79
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
17
回帖
225
粉丝
0
关注
私信
silence刘
5
楼
也就是说如果两个不同的c独立文件引用同样的头文件,头文件中不能含有变量定义。是这个意思么。。。有没有别的什么解决方法之类的
2014-3-20 22:07
0
whnet
雪 币:
185
活跃值:
(25)
能力值:
( LV2,RANK:10 )
在线值:
发帖
22
回帖
1029
粉丝
0
关注
私信
whnet
6
楼
可以定义 啊。
extern CAppModule _Module;
上面这行就 是 stdafx.h的代码。
你重新改改。 全部重新生成试试。
2014-3-20 22:12
0
silence刘
雪 币:
79
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
17
回帖
225
粉丝
0
关注
私信
silence刘
7
楼
意思就是全局变量前面加extern么。。。我试过好像还是连接错误
2014-3-20 22:18
0
whnet
雪 币:
185
活跃值:
(25)
能力值:
( LV2,RANK:10 )
在线值:
发帖
22
回帖
1029
粉丝
0
关注
私信
whnet
8
楼
发工程。
2014-3-20 22:26
0
squallqz
雪 币:
25
活跃值:
(78)
能力值:
( LV2,RANK:10 )
在线值:
发帖
2
回帖
59
粉丝
0
关注
私信
squallqz
9
楼
用预编译
2014-3-21 08:51
0
silence刘
雪 币:
79
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
17
回帖
225
粉丝
0
关注
私信
silence刘
10
楼
我好想明白了什么。。。两个C文件引用的头文件中必须加extern,但是不能直接给全局变量赋值,否则还是会被判定为定义而不是声明。。。是这么理解的么?
2014-3-21 23:00
0
whnet
雪 币:
185
活跃值:
(25)
能力值:
( LV2,RANK:10 )
在线值:
发帖
22
回帖
1029
粉丝
0
关注
私信
whnet
11
楼
。。。 不然你两个地方都给值了。 他怎么知道哪个值是正确的。
2014-3-21 23:30
0
lovelyday
雪 币:
31
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
0
回帖
169
粉丝
0
关注
私信
lovelyday
12
楼
全局变量在头文件中加extern,另外在C文件中再定义一次,头文件中就相当于前置声明
2014-3-22 01:07
0
silence刘
雪 币:
79
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
17
回帖
225
粉丝
0
关注
私信
silence刘
13
楼
差不多了解了,感谢回答
2014-3-24 09:28
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
silence刘
17
发帖
225
回帖
10
RANK
关注
私信
他的文章
[求助]有谁知道这是什么算法加密后的密文么?
4045
[求助]通过文件夹句柄获取文件夹完整名称
4116
[求助]CreateEvent返回ERROR_ACCESS_DENIED
63316
[求助]Minifilter应用层包含库文件无法导出函数
4117
[求助]驱动编译包含重复头文件导致连接错误
6565
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部