Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse未定义引用_Eclipse_Mingw - Fatal编程技术网

Eclipse未定义引用

Eclipse未定义引用,eclipse,mingw,Eclipse,Mingw,我正在使用Eclipse和MinGW。我在h文件中写入的所有内容都有未定义的引用错误,我确实将其包含在主文件所在的cpp文件中。我创建了一个空项目,同样的事情再次发生( main.cpp #include <iostream> #include "Stack.h" using namespace std; int main(){ Stack<int> stack(10); cout << "!!!Hello World!!!" <&l

我正在使用Eclipse和MinGW。我在h文件中写入的所有内容都有
未定义的引用
错误,我确实将其包含在主文件所在的cpp文件中。我创建了一个空项目,同样的事情再次发生(

main.cpp

#include <iostream>
#include "Stack.h"

using namespace std;

int main(){
    Stack<int> stack(10);
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    return 0;
}
#包括
#包括“Stack.h”
使用名称空间std;
int main(){
堆叠(10);

cout这是一个链接器错误。我不是Eclipse专家,但您必须告诉它如何向链接命令添加
Stack.o


如果包含
Stack.cpp
而不是
Stack.h
,则编译前预处理器会将cpp文件中的实现包含到main.cpp中,因此链接阶段没有未解析的外部函数引用。

这是链接器错误。我不是Eclipse专家,但您必须告诉它如何添加
Stack.o
到链接命令。

如果包含
Stack.cpp
而不是
Stack.h
,则编译前预处理器会将cpp文件中的实现包含到main.cpp中,因此链接阶段没有对外部函数的未解析引用。

我的错,那是因为使用模板!使用模板时,所有代码,包括fu的实现nctions必须位于头文件中,否则您必须为要使用模板函数的每种类型编写原型。我忘记了使用模板与使用普通函数不同:(

我的错,那是因为模板!当您使用模板时,所有代码,包括函数的实现,都必须在头文件中,或者您必须为要使用模板函数的每种类型编写原型。我忘记了使用模板与使用普通函数不同:(

My bad,那是因为模板!当您使用模板时,所有代码,包括函数的实现,都必须在头文件中,或者您必须为要使用模板函数的每种类型编写原型。我忘记了使用模板与使用普通函数不同:(我不好,那是因为模板!当你使用模板时,所有代码,包括函数的实现,都必须在头文件中,或者你必须为你要使用模板函数的每种类型编写原型。我忘记了使用模板与使用普通函数不同:(
#ifndef STACK_H_
#define STACK_H_

template <class T>
class Stack{
private:
    struct StackEl;
    StackEl *top;
public:
    Stack();
    Stack(T el);
    ~Stack();
    void Push(const T& el);
    T Pop();
};

#endif /* STACK_H_ */
D:/Workspacee/Stack2/Debug/../src/Stack2.cpp:16: undefined reference to `Stack<int>::Stack(int)'
D:/Workspacee/Stack2/Debug/../src/Stack2.cpp:18: undefined reference to `Stack<int>::~Stack()'
D:/Workspacee/Stack2/Debug/../src/Stack2.cpp:18: undefined reference to `Stack<int>::~Stack()'