这是第一个文件
extern void init();
int main()
{
init();
}
现在是第二个和最后一个文件
inline void init()
{
return;
}
这两个C ++文件是在Visual Studio 2015下构建的,作为Win32控制台应用程序项目。 .pdb文件是在编译后生成的。
那么为什么链接器无法解析外部函数init()
?
test.obj:错误LNK2019:函数_main
中引用的未解析的外部符号“void __cdecl init(void)”(?init @@ YAXXZ)
答案 0 :(得分:2)
从C ++ 11 3.2 / 3“一个定义规则”:
内联函数应在每个使用它的翻译单元中定义
您在包含main()
的翻译单元中违反了该要求。 (或从inline
)
init()