我有三个文件:
1. Joy.h
class Joy
{
public:
void test();
};
2. Joy.cpp
#include "Joy.h"
inline void Joy::test() {}
3. main.cpp
#include "Joy.h"
int main()
{
Joy r;
r.test();
return 0;
}
我尝试使用以下命令编译它们:
g++ cpp Joy.cpp
main.cpp:(.text+0x10): undefined reference to `Joy::test()'
有谁能告诉我为什么……
如果我不想在.h文件中定义test()
函数但仍希望它成为一个inline
函数,该如何解决这个问题?
inline
函数放在头文件中。你可能也会对链接时优化(g++ -flto
使用最新的 GCC 版本) 感兴趣。 - Basile Starynkevitch