我有两个标题。
// header1.h
class A
{
public:
void f();
};
// header2.h
#include "header1.h"
inline void A::f()
{
std::cout << "Yahoo.";
}
// test1.cpp
#include "header1.h"
int main() { A a; a.f(); return 0; }
// test2.cpp
#include "header2.h"
void ff() { /* do nothing */ }
我在 MSVC 2013 上遇到链接错误。我只有一个翻译单元,所以我认为也许“ODR”不是原因?
现在我有 test2.cpp 来包含 header2.h。所以我认为链接器现在可以找到 header2.h 。但是还是链接错误,为什么?