读书人

外部 Lib 产生的好难缠的一个有关问题

发布时间: 2013-11-23 10:52:51 作者: rapoo

外部 Lib 产生的好难缠的一个问题啊!
请教高人一个难缠的问题:

我的一个工程编译链接以及程序运行都是正常的,后来用
include "..."
#pragma comment(lib, "...")
这样的方式导入了一个外部的库以后---

debug版编译没问题,但运行时马上报:
"没有找到 msvcr80.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题";

而release版则根本无法编译成功:
"1>msvcrt.lib(MSVCR80.dll) : error LNK2005: _malloc 已经在 libcmt.lib(malloc.obj) 中定义
1>msvcrt.lib(MSVCR80.dll) : error LNK2005: _fopen 已经在 libcmt.lib(fopen.obj) 中定义
...11 个错误,3个警告"

请高人指点迷津啊,困绕了一整个下午了!
[解决办法]
苦逼,试试用 LodLibrary替代,

以前遇到过类似的问题
[解决办法]
以静态连接的方式最好编译器的版本与生成lib的版本保持一致
[解决办法]
采用动态加载, 函数指针的方式

[解决办法]
我的一个工程编译链接以及程序运行都是正常的,后来用
include "..."
#pragma comment(lib, "...")

既然不加正常,那就不要加,不同版本依赖项有可能引起冲突
[解决办法]
把Multi-threaded Debug DLL 改成 Multi-threaded DLL (/MD)试试

读书人网 >VC/MFC

热点推荐