gpt4 book ai didi

c++ - g++ 链接器错误 : undefined reference

转载 作者:行者123 更新时间:2023-11-30 03:04:13 28 4
gpt4 key购买 nike

我正在编写一个模板化的 Matrix 类,我在 Matrix.h 中包含声明,在 Matrix.cpp 中包含实现。我有一个测试文件 testMatrix.cpp

文件的开头是这样的:

矩阵.h

#ifndef _MATRIX
#define _MATRIX
#include <string.h>
// Definition of Matrix class
#endif

矩阵.cpp

#include "Matrix.h"
#include <iostream>
using namespace std;
// ...Implementation

testMatrix.cpp

#include "Matrix.h"
#include <iostream>
using namespace std;
int main () {
cout << "Test constructors...\n";
cout << "Unitialized matrix (4, 4):\n";
Matrix<int> mi1 (4, 4);
mi1.print ();
cout << "4*4 matrix initialized to -1:\n";
Matrix<int> mi2 (4, 4, -1);
mi2.print();
cout << "Constructing mi3 as a copy of mi2:\n";
Matrix<int> mi3 (mi2);
mi3.print();
cout << "Assigning mi3 to mi1:\n";
mi1 = mi3;
mi1.print();

return 0;
}

我用来编译的命令行:

g++ -Wall -lrt -g Matrix.cpp testMatrix.cpp -o testMatrix

编译器一直给我错误:

/tmp/ccofoNiO.o: In function `main':
/afs/ir/users/t/i/tianxind/practice/Essential_C++/testMatrix.cpp:9: undefined reference to `Matrix<int>::print() const'
collect2: ld returned 1 exit status

有人知道这里出了什么问题吗?非常感谢!

最佳答案

模板函数/类的实现必须在实例化时对编译器可见。这意味着您应该将整个模板放在头文件中,而不是放在 .cpp 文件中。

关于c++ - g++ 链接器错误 : undefined reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8782600/

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