snoopysalive
Mitglied
Hallo!
Ich habe hier ein Problem mit der PostgreSQL-Schnittstellenbibliothek libpqxx. Wenn ich ein Programm schreibe, das auf diese Bibliothek zugreift, scheint das Programm nach der Kompilation leer zu bleiben, sobald ich auch nur auf einen einzigen Befehl aus der Bibliothek zugreife.
Hier das entsprechende Programmbeispiel:
Ich benutze den Cygwin-GCC-Compiler und folgenden Befehl:
Unter /usr/include ist das Bibliotheksverzeichnis pqxx und /usr/local/pgsql enthält die entsprechenden Bibliotheksheader meiner lokalen PostgreSQL-Installation. Der Compiler gibt mir keine Fehlermeldungen aus und die fertige Datei bla.exe ist 2,5 MB groß, weshalb ich davon ausgehe, dass das Kompilieren ordnungsgemäß verlaufen ist.
Wenn ich aber jetzt das Programm starte, terminiert es sofort wieder, ohne einen Fehler oder dergleichen zu melden. Außerdem erscheint keine der Terminalausgaben, die ich implementiert habe.
Sobald ich allerdings alle Befehle, die etwas mit libpqxx zu tun haben auskommentiere (also nur noch die cout-Befehle übrig bleiben), funktioniert das Programm wieder und liefert mir entsprechende Ausgaben auf dem Terminal.
Kennt jemand dieses oder ein ähnliches Problem und kann mir sagen, wie ich es lösen kann?
Danke und Gruß,
Matthias
Ich habe hier ein Problem mit der PostgreSQL-Schnittstellenbibliothek libpqxx. Wenn ich ein Programm schreibe, das auf diese Bibliothek zugreift, scheint das Programm nach der Kompilation leer zu bleiben, sobald ich auch nur auf einen einzigen Befehl aus der Bibliothek zugreife.
Hier das entsprechende Programmbeispiel:
Code:
/* bla.cpp */
#include <iostream>
#include <pqxx/pqxx>
using namespace std;
using namespace pqxx;
int main() {
cout << "Stelle Verbindung her..." << endl;
connection conn("hostaddr=123.456.789.1 port=5432 dbname=datenbankname user=benutzername password=passwort");
cout << "Erstelle work-Objekt..." << endl;
work w(conn);
cout << "Starte Anfrage..." << endl;
result res = w.exec("SELECT COUNT(*) FROM tabelle");
cout << res.size() << endl;
return 0;
}
Ich benutze den Cygwin-GCC-Compiler und folgenden Befehl:
Code:
g++ -I/usr/include -I/usr/local/pgsql/include -o bla.exe bla.cpp -lpqxx -L/usr/local/pgsql/lib -lpq
Unter /usr/include ist das Bibliotheksverzeichnis pqxx und /usr/local/pgsql enthält die entsprechenden Bibliotheksheader meiner lokalen PostgreSQL-Installation. Der Compiler gibt mir keine Fehlermeldungen aus und die fertige Datei bla.exe ist 2,5 MB groß, weshalb ich davon ausgehe, dass das Kompilieren ordnungsgemäß verlaufen ist.
Wenn ich aber jetzt das Programm starte, terminiert es sofort wieder, ohne einen Fehler oder dergleichen zu melden. Außerdem erscheint keine der Terminalausgaben, die ich implementiert habe.
Sobald ich allerdings alle Befehle, die etwas mit libpqxx zu tun haben auskommentiere (also nur noch die cout-Befehle übrig bleiben), funktioniert das Programm wieder und liefert mir entsprechende Ausgaben auf dem Terminal.
Kennt jemand dieses oder ein ähnliches Problem und kann mir sagen, wie ich es lösen kann?
Danke und Gruß,
Matthias