首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过#杂注注释(lib,...)导入了错误的库在Visual C++中

通过#杂注注释(lib,...)导入了错误的库在Visual C++中
EN

Stack Overflow用户
提问于 2010-03-22 21:32:41
回答 1查看 3.3K关注 0票数 1

我使用的是Visual Studio 2008。我有一个DLL和一个测试程序EXE。DLL有一个头文件,其中包含以下内容:

代码语言:javascript
复制
#ifdef _DEBUG
    #pragma comment(lib, "FooD.lib")
#else
    #pragma comment(lib, "Foo.lib")
#endif

其目的是通过FooD.lib导入库动态链接到FooD.dll,用于调试构建,并动态链接到Foo.dll用于发布构建。问题是当我运行debug-build测试程序时,它希望链接到Foo.dll。

我已经验证了在调试版本中为测试程序定义了_DEBUG。如果我用#error指令替换#pragma comment,我会看到错误,所以我非常确定#pragma comment正在按照我所期望的那样被处理。

我还验证了FooD.dllFooD.lib都存在。(Foo.dllFoo.lib不存在。)但在运行时,我收到“无法找到Foo.dll”的错误消息。

你知道可能出了什么问题吗,或者我可以在哪里找出为什么在运行时会查找不正确的DLL?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-22 22:51:39

找到我的问题了:Foo.def文件有下面这一行:

代码语言:javascript
复制
LIBRARY "Foo.DLL"

这会导致导入库指定Foo.dll,而不管实际的DLL名称是什么。所以我只是注释掉了这一行,之后一切都很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2492546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档