Doham Geschrieben 26. Januar 2003 Geschrieben 26. Januar 2003 Hi, folgendes Problem. Ich möchte über C++ auf eine Postgresql-Datenbank zugreifen. Der Compiler bringt keine Fehler. Die Fehlermeldung deutet auf einen Linkerfehler hin, aber ich kann nicht sagen, aus welcher (Quellcode)Datei der Fehler gemeldet wird. Was mir aufgefallen ist: Die Pfade für Postgresql-Systemdateien sind im Buch anders als in der Suse 8.0 RPM-Installation auf meinem Rechner. Kann mir jemand einen Tipp zur Fehlersuche geben? ***********@linux:~> make gcc -lpq -I/usr/local/********/include main.cpp -o prog /tmp/cc7Ln33o.o: In function `__malloc_alloc_template<0>::_S_oom_malloc(unsigned int)': /tmp/cc7Ln33o.o(.__malloc_alloc_template<0>::gnu.linkonce.t._S_oom_malloc(unsigned int)+0x1a): undefined reference to `endl(ostream &)' /tmp/cc7Ln33o.o(.__malloc_alloc_template<0>::gnu.linkonce.t._S_oom_malloc(unsigned int)+0x27): undefined reference to `cerr' /tmp/cc7Ln33o.o(.__malloc_alloc_template<0>::gnu.linkonce.t._S_oom_malloc(unsigned int)+0x2c): undefined reference to `ostream::operator<<(char const *)' /tmp/cc7Ln33o.o(.__malloc_alloc_template<0>::gnu.linkonce.t._S_oom_malloc(unsigned int)+0x37): undefined reference to `ostream::operator<<(ostream &(*)(ostream &))' /tmp/cc7Ln33o.o: In function `basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >::Rep::copy(unsigned int, char const *, unsigned int)': /tmp/cc7Ln33o.o(.basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >::Rep::gnu.linkonce.t.copy(unsigned int, char const *, unsigned int)+0x33): undefined reference to `string_char_traits<char>::copy(char *, char const *, unsigned int)' collect2: ld returned 1 exit status make: *** [prog] Fehler 1 ----- Suse Linux 8.0 (PostgreSQL) 7.2 GNU Make version 3.79.1 ----- @mod: Ich bin mir nicht sicher, ob das jetzt eher als Compilerproblem oder doch ein Linux oder Datenbankproblem zu betrachten ist. Bitte ggf. verschieben. Danke. Zitieren
Klotzkopp Geschrieben 27. Januar 2003 Geschrieben 27. Januar 2003 Da scheint ein Problem beim Linken der Standardbibliothek aufzutreten. Setz bitte mal in die Linkerzeile des Makefiles hinter das -lpq ein -lstdc++. Machst du #include <iostream> using namespace std; oder #include <iostream.h> ? Zitieren
Doham Geschrieben 28. Januar 2003 Autor Geschrieben 28. Januar 2003 [meine Fehlermeldung gelöscht - weil nicht mehr benötigt] gcc -lpq -stdc++ -I/usr/local/postgresql/include main.cpp -o prog --> wer lesen kann ist klar im Vorteil ich hab das "l" übersehen. gcc -lpq -lstdc++ -I/usr/local/postgresql/include main.cpp -o prog --> so funktionierts. Kaum macht mans richtig funktionierts. Anscheinend ein Druckfehler in meinem Buch. (ich werd dem Verlag gleich mal eine eMail schicken). DANKE für deinen Hinweis - ich bin fast verzweifelt... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.