这是第一个文件
extern void init();
int main()
{
init();
}
现在是第二个也是最后一个文件
inline void init()
{
return;
}
这 2 个 C++ 文件是在 Visual Studio 2015 下作为 Win32 控制台应用程序项目构建的。 .pdb 文件是在编译后生成的。
那么为什么链接器无法解析外部函数init()
呢?
test.obj : error LNK2019: unresolved external symbol "void __cdecl init(void)" (?init@@YAXXZ) referenced in function _main
最佳答案
来自 C++11 3.2/3 “一个定义规则”:
An inline function shall be defined in every translation unit in which it is odr-used
您在包含 main()
的翻译单元中违反了该要求。 (或从 init()
的定义中删除 inline
)
关于c++ - 一个莫名其妙的 LNK2019 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38163565/