undefinde reference to
-
Ich finde den blöden Fehler nicht. Vll. findet ihn ja jemand von euch? Entschuldigt die Einrückung, is aber mitm behinderten Dev-C++ geschrieben worden. Also ich finde dem seine Einrückung zumindestens hässlich! (Sonst noch jemand?)
CODE:
main.cpp#include <iostream> #include "user_service.hpp" using namespace std; int main() { return 0; }user_service.hpp
#include <string> #include <iostream> struct datum { unsigned long year; unsigned long month; unsigned long day; }; class user_service { public: std::string cash_flow(const std::string &re="Betreff: "); unsigned long amount(const std::string &re="Geldsumme: "); datum date(const std::string &re1="Jahr: ", const std::string &re2="Monat: ", const std::string &re3="Tag: "); bool goon_option(const std::string &re="Weiter eintragen? (j/n) "); };user_service.cpp
#include "user_service.hpp" #include <iostream> #include <string> using namespace std; string user_service::cash_flow(const string &re) { string temp; cout << re; cin >> temp; return temp; } unsigned long user_service::amount(const string &re) { unsigned long temp; cout << re; cin >> temp; return temp; } datum date(const string &re1, const string &re2, const string &re3) { datum temp; cout << re1; cin >> temp.year; cout << re2; cin >> temp.month; cout << re3; cin >> temp.day; return temp; } bool goon_option(const string &re) { char temp; cout << re; cin >> temp; if(temp=='j') return true; else return false; }outgo.hpp
#include <iostream> #include <vector> #include "user_service.hpp" struct finance { std::string money_re; unsigned long money_amount; datum money_date; }; class outgo { public: void detail_interview_outgo(); private: user_service ser_outgo; std::vector<finance> m_save_out; };outgo.cpp
#include "outgo.hpp" void outgo::detail_interview_outgo() { bool end; do { ser_outgo.cash_flow("Artikel / Dienstleistung / Betreff: "); ser_outgo.amount("Geldsumme: "); end=ser_outgo.goon_option(); }while(end); ser_outgo.date(); }ERROR:
Compiler: Default compiler
Building Makefile: "H:\C++ Projekte\Finanzplaner\Makefile.win"
Führt make... aus
make.exe -f "H:\C++ Projekte\Finanzplaner\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"H:/Programme/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"H:/Programme/Dev-Cpp/include/c++/3.4.2/backward" -I"H:/Programme/Dev-Cpp/include/c++/3.4.2/mingw32" -I"H:/Programme/Dev-Cpp/include/c++/3.4.2" -I"H:/Programme/Dev-Cpp/include"g++.exe -c outgo.cpp -o outgo.o -I"H:/Programme/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"H:/Programme/Dev-Cpp/include/c++/3.4.2/backward" -I"H:/Programme/Dev-Cpp/include/c++/3.4.2/mingw32" -I"H:/Programme/Dev-Cpp/include/c++/3.4.2" -I"H:/Programme/Dev-Cpp/include"
g++.exe main.o user_service.o outgo.o -o "Finanzplaner.exe" -L"H:/Programme/Dev-Cpp/lib" -L"H:/Programme/DirectX SDK/Lib/x86" -L"H:/Programme/Dev-Cpp/lib/liballeg.a"
outgo.o(.text+0x35e):outgo.cpp: undefined reference to
user\_service::goon\_option(std::string const&)' outgo.o(.text+0x4e8):outgo.cpp: undefined reference touser_service::date(std::string const&, std::string const&, std::string const&)'
collect2: ld returned 1 exit statusmake.exe: *** [Finanzplaner.exe] Error 1
Ausführung beendet
MfG
StrombergPS: Des Programm is erst nä Stunde alt, also is noch gar nix ausgereift..nur n Ansatz. Funzt aber leider jetzt schon nicht!!!

-
In der user_service.cpp:
bool goon_option(const string &re)Da hast Du wohl ein
user_service::vergessen
Genauso verhält es sich bei der anderen bemängelten Funktiondate(...)Kleiner Tipp am Rande: nimm Dir als IDE lieber MSVC Express, die ist wesentlich leistungsfähiger und ist auch nicht so veraltet wie der Dev-C++
Bei der 2008er Version musst Du auch nicht mehr das SDK einrichten, bleibt sich vom Installations bzw. -Einrichtungsaufwand genauso gleich wie beim Dev-C++.
-
Dankeschön. Blöder Fehler.
Ist MSVC Express kostenlos? Eigentlich hatte ich früher immer Code::blocks benutzt, aber in letzter Zeit hab ich mit der Allegro Bibliothek angefangen, und die hat irgendwie nur auf Dev C++ funktioniert, und nicht auf Code::blocks.
Aber ich probier mal MSVC aus.MfG
Stromberg
-
Stromberg schrieb:
und die hat irgendwie nur auf Dev C++ funktioniert, und nicht auf Code::blocks.
Das lag dann aber nur an den Linkereinstellungen, da Dev-C++ den selben Compiler wie Code::Blocks verwendet.
Stromberg schrieb:
Aber ich probier mal MSVC aus.
Das ist eine sehr gute Idee
Womöglich musst Du dann Allegro neu kompilieren, falls für MSVC 9.0 keine vorkompilierten Libraries ausgeliefert werden. Lass' Dich davon aber nicht entmutigen, bei konkreten Problemen einfach wieder wie gewohnt im Forum fragen 
-
-
Die kostenlosen Visual Studio Express Editions sind leistungsfähige, einfach zu verwendende und leicht erlernbare Tools für Einsteiger und Hobbyprogrammierer ...
Ja dafür genügen sie auf alle Fälle. Für professionelle Entwicklung aber einfach viel zu frickelig.