gpt4 book ai didi

c++ - inline 关键字导致 Visual C++ 中的链接器错误 2019

转载 作者:行者123 更新时间:2023-11-30 01:56:35 25 4
gpt4 key购买 nike

我一直没有使用 MSVC,依稀记得内联类成员函数没有问题。但是,当我这样使用内联关键字时:

//In header file
class A {
public:
inline void funcA(void);
};

//In cpp file
void A::funcA(void) {

}

我得到一个 LNK2019,未解析的符号(即使该函数与错误所说的缺失完全匹配)。我已经尝试将 header 和定义都标记为内联,但同样的事情发生了。我还在尝试构建后删除了 inline 关键字,错误一直存在,直到我清理解决方案,之后一切都构建得很好,无内联。当我用谷歌搜索这个问题时,似乎没有人遇到同样的问题,这表明我遗漏了一些明显的东西……但它是什么?

最佳答案

内联函数应始终在标题中定义。它不必在类定义中,但应该在标题中。如果你没有把它放在头文件中,其他模块包括 .h 文件将无法看到定义并内联它....

供您引用,最新版本的 Visual C++ 具有链接时代码生成功能,它允许编译器在其他模块(= cpp 文件)中内联函数,即使要内联的函数是在其他 .cpp 文件中定义的。但这是一个专有扩展,并且在不考虑 inline 关键字的情况下完成。可移植的方法是使用inline 并将其放在 header 中。

关于c++ - inline 关键字导致 Visual C++ 中的链接器错误 2019,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19623355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com