您的位置:首页 > 其它

LNK2001:无法解析的外部符号 错误常见解决方法

2014-01-08 00:04 411 查看
LNK2001:无法解析的外部符号 错误常见解决方法

vs编译时有时会出现LNK2001的链接错误,如下:

libxxxx.lib(xxxxx.obj) : error LNK2001: 无法解析的外部符号 __imp__socket@12

出现这种错误可以考虑从几个方面解决:

1、函数声明了,但是没有实现。将该函数实现即可。

2、用到了一个库函数,但是在项目里面没有把库加入进来。

在MSDN中查找下该函数,看下依赖哪个库,加入进项目即可。

3、最近遇到了一种情况:

在lib a中有函数定义:

void foo(int, int);

然后在另一个工程中使用时出现了LNK2001的错误。最后发现是两个工程的调用约定不一致导致的。将工程的调用约定改为一致就可以了,方法:右键工程->属性->配置属性->c/c++->高级->调用约定。

其实在写lib声明函数时最好写成如下形式:

void WINAPI foo(int, int);

也可以避免这种问题的出现。

另附一片较详细的LNK2001的文章: http://blog.sina.com.cn/s/blog_51890fea0100l41h.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐