链接器工具错误 LNK2020
无法解析的标记“token”
类似于未定义的外部错误,但引用是通过元数据的。 在元数据中,必须定义所有函数和数据。
若要解决问题,请执行以下操作:
定义缺少的函数或数据,或
包括已定义缺失函数或数据的对象文件或库。
示例
下面的示例生成 LNK2020。
// LNK2020.cpp
// compile with: /clr /LD
ref struct A {
A(int x); // LNK2020
static int f(); // LNK2020
};
// OK
ref struct B {
B(int x) {}
static int f() { return 0; }
};
如果创建托管模板类型的变量,但不会同时实例化该类型,也会发生 LNK2020。
下面的示例生成 LNK2020。
// LNK2020_b.cpp
// compile with: /clr
template <typename T>
ref struct Base {
virtual void f1() {};
};
template <typename T>
ref struct Base2 {
virtual void f1() {};
};
int main() {
Base<int>^ p; // LNK2020
Base2<int>^ p2 = gcnew Base2<int>(); // OK
};