Zum Inhalt springen

Linux [MAKE]-Problem mit Postgresql Datenbankzugriff über C++


Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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>

?

Geschrieben

[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 :D

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...

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...