高手快来啊,error LNK2001 问题

pleasechangegreat 2008-10-09 05:04:45
//server.cpp
#include "mot.h"
...
...

if (RpcServerUseAllProtseqsIf(1, motfunc_v1_0_s_ifspec, NULL))
{
return FALSE;
}
...
...
server.obj : error LNK2001: 无法解析的外部符号 _motfunc_v1_0_s_ifspec

motfunc_v1_0_s_ifspec在mot.h中申明的外部变量——extern RPC_IF_HANDLE motfunc_v1_0_c_ifspec;
在mot_s.c中定义的——RPC_IF_HANDLE motfunc_v1_0_s_ifspec = (RPC_IF_HANDLE)& motfunc___RpcServerInterface;

mot.h 、mot_s.c和mot_c.c是有mot.idl编译产生的。

为什么产生连接错误呢?就高手解答啊!
...全文
138 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pleasechangegreat 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zmlovelx 的回复:]
motfunc_v1_0_s_ifspec在mot.h中申明变量—— RPC_IF_HANDLE motfunc_v1_0_c_ifspec;//extern去掉
在mot_s.c中定义的——RPC_IF_HANDLE motfunc_v1_0_s_ifspec = (RPC_IF_HANDLE)& motfunc___RpcServerInterface;
然后在
mot_s.c中#include "mot.h"
[/Quote]

编译过了。强人啊。谢谢。
pleasechangegreat 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 OhFish 的回复:]
在mot.h中申明
在mot_s.c中定义的

-------------------------------
mot_s.c有include mot.h 吗
[/Quote]

我明天去公司试一试。
帅得不敢出门 2008-10-09
  • 打赏
  • 举报
回复
motfunc_v1_0_s_ifspec在mot.h中申明变量—— RPC_IF_HANDLE motfunc_v1_0_c_ifspec;//extern去掉
在mot_s.c中定义的——RPC_IF_HANDLE motfunc_v1_0_s_ifspec = (RPC_IF_HANDLE)& motfunc___RpcServerInterface;
然后在
mot_s.c中#include "mot.h"
OhFish 2008-10-09
  • 打赏
  • 举报
回复
在mot.h中申明
在mot_s.c中定义的

-------------------------------
mot_s.c有include mot.h 吗
jia_xiaoxin 2008-10-09
  • 打赏
  • 举报
回复
extern RPC_IF_HANDLE motfunc_v1_0_c_ifspec
改为
extern "C" RPC_IF_HANDLE motfunc_v1_0_c_ifspec
试一试
freshairfly 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pleasechangegreat 的回复:]
引用 1 楼 freshairfly 的回复:
哦哦,这个可能是因为一个是CPP方式编译,一个是C方式编译


我想因为mot.h 、mot_s.c和mot_c.c是产生的,不再工程中,所以不会编译这三个文件的。
[/Quote]
生成的文件应该也被编译了,应该也在工程里
pleasechangegreat 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 freshairfly 的回复:]
哦哦,这个可能是因为一个是CPP方式编译,一个是C方式编译
[/Quote]

我想因为mot.h 、mot_s.c和mot_c.c是产生的,不再工程中,所以不会编译这三个文件的。
pleasechangegreat 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 matrixdwy 的回复:]
首先你要确定自己有没有拼写错误。。。
[/Quote]

没有拼写错误啊,不然就会没有申明啦。
matrixdwy 2008-10-09
  • 打赏
  • 举报
回复
首先你要确定自己有没有拼写错误。。。
freshairfly 2008-10-09
  • 打赏
  • 举报
回复
哦哦,这个可能是因为一个是CPP方式编译,一个是C方式编译

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧