- Oliv,
Bonjour,
J’ai essayé il y a quelque temps de me mettre au C, une pause depuis… Je reprends et souhaite m’interfacer en C, au SGBDR PostgreSQL. API libpq.
Objectif : gestion de 4 planches de culture d’un potager en carré (association / rotation)
- API : /usr/local/include/postgresql/libpq-fe.h
- Utiliser l’option -I pour indiquer le chemin : zcc -I /usr/local/include/postgresql
Le problème que je rencontre :
(...)
ld: error: undefined symbol: PQstatus
>>> referenced by test.c
>>> /tmp/test-6587af.o:(main)
ld: error: undefined symbol: PQerrorMessage
>>> referenced by test.c
>>> /tmp/test-6587af.o:(main)
(...)
De ma compréhension, il est nécessaire ici d’inclure, le chemin de la librairie libpq lors de la compilation :
- /usr/local/lib/libpq.a
- /usr/local/lib/libpq.so.6.12
J’ai essayé via l’option -l sans succès. J’ai durant mes recherches, perdu le fil entre liaison statique et liaison dynamique lors de l’étape du linker:
OpenBSD clang version 11.1.0
Target: amd64-unknown-openbsd7.0
Thread model: posix
InstalledDir: /usr/bin
"/usr/bin/clang" -cc1 -triple amd64-unknown-openbsd7.0 -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name test.c -mrelocation-model pic -pic-level 1 -pic-is-pie -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -fno-split-dwarf-inlining -debugger-tuning=gdb -v -resource-dir /usr/lib/clang/11.1.0 -I /usr/local/include/postgresql -internal-isystem /usr/lib/clang/11.1.0/include -internal-externc-isystem /usr/include -Wall -Wextra -pedantic -std=c11 -fdebug-compilation-dir /home/oliv/Coding/Potager -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fno-builtin -fgnuc-version=4.2.1 -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -faddrsig -o /tmp/test-db52b9.o -x c test.c
clang -cc1 version 11.1.0 based upon LLVM 11.1.0 default target amd64-unknown-openbsd7.0
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include/postgresql
/usr/lib/clang/11.1.0/include
/usr/include
End of search list.
"/usr/bin/ld" -e __start --eh-frame-hdr -Bdynamic -dynamic-linker /usr/libexec/ld.so -o a.out /usr/lib/crt0.o /usr/lib/crtbegin.o -L/usr/lib -l/usr/local/lib/libpq.so.6.12 /tmp/test-db52b9.o -lcompiler_rt -lc -lcompiler_rt /usr/lib/crtend.o
ld: error: unable to find library -l/usr/local/lib/libpq.so.6.12
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Une orientation ?
+0
-0