首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在g++中消除“使用但从未定义的内联函数”警告

如何在g++中消除“使用但从未定义的内联函数”警告
EN

Stack Overflow用户
提问于 2011-12-14 23:31:47
回答 1查看 6.8K关注 0票数 4

我用的是明明威64。我包括了strsafe.h,并收到了以下警告:

代码语言:javascript
复制
warning: inline function 'HRESULT StringCchPrintfA(STRSAFE_LPSTR, size_t, STRS
AFE_LPCSTR, ...)' used but never defined [enabled by default]

我使用的唯一标志是-Wall -DDEBUG -g。我知道您必须在同一个标题中定义内联函数,我查看了strsafe.h,我清楚地看到了标题中的StringCchPrintfA,所以我不知道为什么会出现这个错误。还有,这是如果您想自己查看标题,请提供到strsafe.h .h的链接。

编辑:

我在网上找到了以下片段(如果有人能提供更多的信息,请告诉我,在评论中想说什么?):

代码语言:javascript
复制
// Work around lack of strsafe library in mingw-w64, do let their
// strsafe.h provide inlines of StringCchVPrintfA etc, avoid linking
// errors in a debug build.
#ifdef __CRT__NO_INLINE
#undef __CRT__NO_INLINE
#define DID_UNDEFINE__CRT__NO_INLINE
#endif
extern "C" {

#endif

#include <strsafe.h>

#ifdef __MINGW32__
}

#ifdef DID_UNDEFINE__CRT__NO_INLINE
#define __CRT__NO_INLINE
#endif
#endif
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-15 02:13:07

这则评论表明,应该有一个可供选择的库,但它并不存在。__CRT__NO_INLINE定义必须暗示在某个地方存在一个编译好的库来提供函数,而不是使用来自标头的内联库。

因此,在库不存在的情况下(但它似乎认为应该存在),允许使用内联函数。

但是,这是为了修复链接错误。编译代码时会得到链接错误吗?还是你只是收到警告?如果你只收到警告,那就意味着你确实拥有了安全库。完全可信的是,没有办法消除消息,仍然使用该函数的编译版本。

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

https://stackoverflow.com/questions/8513230

复制
相关文章

相似问题

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