链接时报“无法解析的外部符号”的问题

xiaoge22275 2016-05-25 12:50:27
1> 正在创建库 D:\cpp\Test\Release\Test.lib 和对象 D:\cpp\Feature\Release\Test.exp
1>test.obj : error LNK2001: 无法解析的外部符号 "int __cdecl _sift_features(struct _IplImage *,struct feature * *,int,double,double,int,int,int,int)" (?_sift_features@@YAHPAU_IplImage@@PAPAUfeature@@HNNHHHH@Z)
1>D:\cpp\Test\Release\test.dll : fatal error LNK1120: 1 个无法解析的外部命令
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

说无法解析的外部符号,其实是有声明和定义的。声明在引入的头文件里,而定义在相同目录下的.c文件里。实在看不出来有什么问题,如何解决呢?
...全文
513 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2016-05-29
  • 打赏
  • 举报
回复
话说,因为存在二义性,而没有编译的代码。连接也会出错的
lm_whales 2016-05-27
  • 打赏
  • 举报
回复
1)这个函数不存在,编译器找不到定义 2)这个函数有不止一份实现,出现二义性,编译器难以推断,该链接哪一份代码
赵4老师 2016-05-27
  • 打赏
  • 举报
回复
这个问题和i++问题一样月经。
paschen 2016-05-25
  • 打赏
  • 举报
回复
链接器链接时找不到XXX函数的具体实现,如果这个函数不是自己实现的函数,通常需要将依赖的库文件添加到项目设置中。 具体位置在:项目属性——链接器——输入——附加依赖项
小灸舞 2016-05-25
  • 打赏
  • 举报
回复
你的定义是在相同目录下的.c文件里?
1.如果你是自己编译链接的,检查_sift_features这个函数的定义和实现是否一致(比如参数个数,类型,函数名是否拼写错误)

2.如果用的IDE(比如VS),检查是否将.c文件添加到工程中了

3.如果实现是在.lib里(检查附加库目录,附加依赖项)
leuzz 2016-05-25
  • 打赏
  • 举报
回复
是不是没有指定库文件的路径,或者少了库文件

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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