以下MCVE使用mingw-w64 4.9.2:
发出警告struct __declspec(dllimport) S
{
int foo() { return func(); }
int func();
void other_func();
};
inline int S::func() { return 1000; }
int main() {}
警告是:
dt.cc:9:5: warning: 'int S::func()' redeclared without dllimport attribute
after being referenced with dll linkage
inline int S::func() { return 1000; }
^
我的问题是:报告的问题到底是什么,我应该对此做些什么(例如提交错误报告)?
如果我将int func();
更改为inline int func();
,警告就会消失 - 不确定这是什么意思。
背景:此模式出现在名为POCO的C ++库中的许多地方。该类有一些函数,它们的主体在DLL中(例如other_func
)和一些函数,它们的主体出现在头文件中(例如func
)。