Wie installiere ich libpq++ richtig unter Linux Ubuntu Mint

Hallo Community,
Ich bin sehr überzeugt von PostGreSQL.
Und habe seine Vorteile unter Python zu schätzen gelernt.
Nun möchte ich die Programmiersprache wechseln.
Und da ist mein Augenmerk auf C++ gefallen.
Nun habe ich gelesen wie man C++ mit PostgreSQL verbinden kann.
Dort steht es gibt dafür eine Library namens libpq++.
Nun weis ich allerdings nicht wie ich diese installieren kann.

Es wäre nett wurde jemand von euch mir eine passende Web-Site zeigen.

In freudiger Erwartung auf Hilfe

Mungo1981

vielleicht hilft dir die github Seite weiter:

Da gibt’s weiter unten eine Menge Erklärungen.

Kleiner Tipp am Rande: die korrekte Schreibweise ist “PostgreSQL” - mit einem kleinen “g”

Ok, hab den Weg mit

configure
make
make install

versucht.
Habe aber das Problem das “make” sein Make-File nicht finden kann.
Hab ne Installation versucht mit libpqxx-4.0

Ein langsam verzweifelter
Mungo1981

Ist den dein configure überhaupt sauber durchgelaufen?

Cu tb

Ok,
Da haben wir ein kleines Problem:

configure: error: 
Can't find libpq-fe.h in .  Are you sure the libpq
headers are installed correctly?  They should be in the directory returned by
"pg_config --includedir".

Nur weis ich trotzdem jetzt nicht genau was ich tun soll.

Ein
Mungo1981
der ein kleines Problem hat.

Installiere folgendes Package:

sudo apt-get install libpq-dev

Ok,
Danke scheinbar läuft

./Configure

durch

make

macht auch - scheinbar - keinen Fehler / gibt auch keine Fehlermeldung.
Aber folgendes misslingt immer noch:

make install
.
.
...
ake[3]: Für das Ziel „install-exec-am“ ist nichts zu tun.
test -z "/usr/local/include" || /bin/mkdir -p "/usr/local/include"
/bin/mkdir -p '/usr/local/include/pqxx'
/bin/mkdir: das Verzeichnis »/usr/local/include/pqxx“ kann nicht angelegt werden: Keine Berechtigung
 /usr/bin/install -c -m 644  pqxx/pqxx pqxx/basic_connection pqxx/basic_connection.hxx pqxx/binarystring pqxx/binarystring.hxx pqxx/compiler-public.hxx pqxx/compiler-internal-pre.hxx pqxx/compiler-internal-post.hxx pqxx/connection pqxx/connection.hxx pqxx/connection_base pqxx/connection_base.hxx pqxx/connectionpolicy pqxx/connectionpolicy.hxx pqxx/cursor pqxx/cursor.hxx pqxx/dbtransaction pqxx/dbtransaction.hxx pqxx/errorhandler pqxx/errorhandler.hxx pqxx/except pqxx/except.hxx pqxx/field pqxx/field.hxx pqxx/isolation pqxx/isolation.hxx pqxx/largeobject pqxx/largeobject.hxx pqxx/nontransaction pqxx/nontransaction.hxx pqxx/notification pqxx/notification.hxx pqxx/notify-listen pqxx/notify-listen.hxx pqxx/performance.hxx pqxx/pipeline pqxx/pipeline.hxx pqxx/prepared_statement pqxx/prepared_statement.hxx pqxx/result '/usr/local/include/pqxx'
/usr/bin/install: das angegebene Ziel '/usr/local/include/pqxx' ist kein Verzeichnis
Makefile:357: die Regel für Ziel „install-nobase_includeHEADERS“ scheiterte
make[3]: *** [install-nobase_includeHEADERS] Fehler 1
make[3]: Verzeichnis „/home/oem/libpqxx-4.0/include“ wird verlassen
Makefile:610: die Regel für Ziel „install-am“ scheiterte
make[2]: *** [install-am] Fehler 2
make[2]: Verzeichnis „/home/oem/libpqxx-4.0/include“ wird verlassen
Makefile:410: die Regel für Ziel „install-recursive“ scheiterte
make[1]: *** [install-recursive] Fehler 1
make[1]: Verzeichnis „/home/oem/libpqxx-4.0/include“ wird verlassen
Makefile:395: die Regel für Ziel „install-recursive“ scheiterte
make: *** [install-recursive] Fehler 1

Ein
Mungo1981
der sich etwas näher dem Ziel wähnt

Installation auf dem System muss als root-User ausgeführt werden.
Siehe auch “Keine Berechtigung” in der Ausgabe.

sudo make install

Ok,
Es scheint jetzt zu funktionieren:
g++ will jetzt meinen C++ Code in eine Anwendung übersetzen.
Bleibt für mich eigentlich mich nur zu bedanken:
DANKE !!! :wink:
Muss jetzt aber noch die Verbindung zur Datenbank configurieren.
Denke, dass ich das Morgen angehen werde.

Ein zuerst einmal
ÜBER-GLÜCKLICHER

Mungo1981

Freut mich. :slight_smile:

Ist diese lib irgend etwas offizielles?
Für Produktivsysteme solltest Du keine Thirdparty Sachen mit sudo make install ins System bringen, damit zerschiesst Du Dir dein Linux auf dem kürzesten Weg und verursachst eien unwartbaren Zustand.

Schau bei Debian basierten Systemen immer erstmal ob Du die entsprechenden Pakete nicht mit apt-cache search paketname finden kannst.
Wenn es nicht dabei ist, schau ob das Paketrepo
ein addbares Remote Repo anbietet so das Du es APT zugänglich machen (und später auch wieder sauber entfernen kannst) und es sowas nicht gibt schau ob es *.deb files gibt due Du runterladen und mit dpkg -i installieren kannst.
Sollte das alles nicht gehen, dann mach es mit make aber mach zumindest kein make install.
Mach ./configure und make und arbeite im make ordner an deinem Progfam. So kannst Du einfach den make ordner mit rm ./xyz -Rf löschen und dein System bleibt clean. Bei make install werden jedoch Symlinks gesetzt auf die sich dann eventuell andere Programne verlassen und Fehler werfen was schnell zu einem Schlamassel führt.

die Lib sollte Bestandteil des postgresql-client Packetes sein.

Hab gerade noch mal nachgeschaut.
PostgreSQL Datenbankserver und zugehörige Clientlibs sind ANSI C only und auf dem C Sprachlevel ANSI C89.Die C++ lib um die es hier geht kann daher nicht offiziell zum Postgres Hauptprojekt zugerechnet werden. Vermutlich ist es CONTRIB oder xyz ThirdParty.

https://wiki.postgresql.org/wiki/Client_Libraries#C.2B.2B

C:\Users\Dravion
λ ssh dravion@ubuntu.dravions-unix-lab.com
dravion@ubuntu.dravions-unix-lab.com’s password:
Welcome to Ubuntu 19.04 (GNU/Linux 5.0.0-15-generic x86_64)

dravion@ubuntu:~$ git clone https://git.postgresql.org/git/postgresql.git
Cloning into ‘postgresql’…
remote: Counting objects: 736879, done.
remote: Compressing objects: 100% (111357/111357), done.
remote: Total 736879 (delta 630467), reused 728732 (delta 622716)
Receiving objects: 100% (736879/736879), 222.23 MiB | 5.72 MiB/s, done.
Resolving deltas: 100% (630467/630467), done.

dravion@ubuntu:~$ sloccount postgresql/

Totals grouped by language (dominant language first):
ansic: 840277 (90.52%)
xml: 31040 (3.34%)
perl: 24312 (2.62%)
yacc: 18413 (1.98%)
lex: 8819 (0.95%)
sh: 4544 (0.49%)
cpp: 655 (0.07%)
python: 155 (0.02%)
asm: 65 (0.01%)
sed: 15 (0.00%)

Total Physical Source Lines of Code (SLOC) = 928,295
Development Effort Estimate, Person-Years (Person-Months) = 261.28 (3,135.32)
Estimated Average Number of Developers (Effort/Schedule) = 58.85
Total Estimated Cost to Develop = $ 35,294,898