0

I cannot link object files. Compilation works fine, but the linker gives me these error messages:

testArguments.o: In function Z6__mainiPPc': /cygdrive/c/Users/Lukas/work/ProxyServer/src/test/testArguments.cpp:5: undefined reference toArguments::Arguments()' /cygdrive/c/Users/Lukas/work/ProxyServer/src/test/testArguments.cpp:6: undefined reference to Arguments<int>::insertItem(int)' /cygdrive/c/Users/Lukas/work/ProxyServer/src/test/testArguments.cpp:8: undefined reference to_Unwind_Resume' testArguments.o: In function ZNSt10_List_baseIiSaIiEED2Ev': /usr/lib/gcc/i686-pc-cygwin/4.8.2/include/c++/bits/stl_list.h:378: undefined reference to_Unwind_Resume' testArguments.o: In function ZN9__gnu_cxx13new_allocatorISt10_List_nodeIiEE10deallocateEPS2_j': /usr/lib/gcc/i686-pc-cygwin/4.8.2/include/c++/ext/new_allocator.h:110: undefined reference tooperator delete(void*)' testArguments.o:testArguments.cpp:(.eh_frame+0x13): undefined reference to __gxx_personality_v0' testArguments.o:testArguments.cpp:(.eh_frame$_ZNSt10_List_baseIiSaIiEED2Ev+0x13): undefined reference to__gxx_personality_v0' Makefile:7: recipe for target 'tests' failed

But these functions are defined in the cpp file (Argument::Arguments() Arguments::insertItem(int)

Here is my header file:

#ifndef ARGUMENTS_H 

#define ARGUMENTS_H

#include <list>


using std::list;
template<class T>
class Arguments{

public:

        Arguments(list<T> args);>

    Arguments()>;

    void insert>Item(T item);

    list<T> getValues();

private:

    list<T> values;
};
#endif

Here the cpp file:

#include "include/Arguments.h"
#include <list>
using std::list;

template<class T> Arguments<T>::Arguments(list<T> args) {

    values = args;

}

template<class T> Arguments<T>::Arguments() {

}

template<class T> void Arguments<T>::insertItem(T argument){
    values.push_back(argument); 
}

template<class T> list<T> Arguments<T>::getValues() {
    return this.values;

}
brasofilo
  • 25,496
  • 15
  • 91
  • 179
Luke
  • 1,768
  • 2
  • 20
  • 30

0 Answers0