probleme beim compilen
-
Hallo, ich bin neu in c++ und bin gerade darüber mich einzuarbeiten und erste files für meine bachelor arbeit zu schreiben.
ich habe eine header datei (mit der zugehörigen implementierung in einen anderen file) geschrieben und bekomme nun immer fehler wenn ich das prog compiliere in dem diese datei eingebunden ist.
hier die header datei#include <string> #include <vector> using namespace std; string cutspaces(string input);//schneidet führende Leerzeichen ab string cutfstr(string input);//schneidet führenden String bis zum nächsten Leerzeichen ab string cutastr(string input);//schneidet alles nach führenden String ab string cutstring(string input, int nstring);//schneidet nstring stringsteile ab, welche durch leerzeichen getrennt sind, endet vor dem nstring+1-ten stringteil int sti(string input); //wandelt einen String mit einer Zahl in diese als int um vector<int> gettypenodes_gmsh(string input);//gibt Elementtyp in VTK file format und Anzahl der Knoten in diesem als Vektor zurückdie fehlermeldung ist folgende:
/tmp/ccO7qbxr.o: In function `main': convert1.cpp:(.text+0x26c): undefined reference to `sti(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)' convert1.cpp:(.text+0x352): undefined reference to `cutstring(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)' convert1.cpp:(.text+0x4aa): undefined reference to `sti(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)' convert1.cpp:(.text+0x6d9): undefined reference to `gettypenodes_gmsh(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)' convert1.cpp:(.text+0x7e2): undefined reference to `cutstring(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)' convert1.cpp:(.text+0x880): undefined reference to `cutastr(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)' convert1.cpp:(.text+0x914): undefined reference to `sti(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)' convert1.cpp:(.text+0x982): undefined reference to `cutstring(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)' collect2: ld returned 1 exit statusich verwende den g++ compiler, die header datei ist mit #include "sfunctions.h" eingebunden(ist natürlich im selben verzeichnis)
ich würde mich über eure hilfe sehr freuen.
lg gebbi
-
kleiner zusatz: wenn ich die prototypen in dem file wo ich sie verwenden möchte einfüge und die implementierung ans ende des files, dann funktioniert alles, denke also nicht das es an der implementierung an sich liegt.
-
Deine Funktionsdeklaration kommt in eine foo.h
Die Implementierung dieser Funktionen in eine foo.cpp, wobei diese die foo.h inkludiert.
Deine Hauptdatei inkludiert lediglich nur noch die foo.hDein using namespace solltest du aus Header-Files verbannen. Das macht nur Probleme, wenn man verschiedene Librarys mit unterschiedlichen namespaces verwendet.
-
Verwendest du eine IDE oder rufst du den "g++" in der Konsole auf?
Bei letzterem mußt du alle deine Implementierungsdateien angeben:
g++ main.cpp sfunctions.cpp -o main.exe(unter Unix/Linux ohne ".exe" -)