Makefile sucht die MQ-Bibliothek an einem falschen Ort unter LINUX

398
user736280

In meinem Makefile habe ich eine Zeile

/usr/bin/gcc -m64 -DMQ_SEND /home/avalanche/oleg/src/ctm_mq_con_ex.o -o /home/avalanche/oleg/bin/ctm_mq_con_ex -LP/opt/mqm/lib64 -lmqm -lmqmcs -lmqmzse -lnsl -ldl 

Wenn ich es starte, lautet der Fehler:

/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lmqm /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lmqmcs /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lmqmzse 

Was ich nicht verstehe, ist, warum versucht wird, die MQ-Bibliothek an einem falschen Ort zu finden:

/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lmqm 

Wenn ich weiß, dass die MQ-Bibliothek Folgendes ist:

/opt/mqm/lib/libmqm.so  /opt/mqm/lib/libmqm_r.so  /opt/mqm/lib/libmqmcs.so  /opt/mqm/lib/compat/libmqm.so  /opt/mqm/lib/compat/libmqm_r.so  /opt/mqm/lib/libmqmcs_r.so/  opt/mqm/lib/libmqmzse.so/  opt/mqm/lib64/libmqm.so/  opt/mqm/lib64/libmqm_r.so/  opt/mqm/lib64/libmqmcs.so/  opt/mqm/lib64/compat/libmqm.so/  opt/mqm/lib64/compat/libmqm_r.so/  opt/mqm/lib64/libmqmcs_r.so/  opt/mqm/lib64/libmqmzse.so  
0

1 Antwort auf die Frage

0
user739238

https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#index-l

Die Option -l ist für statische Objektbibliotheken vorgesehen, bei denen es sich um libsomething.a-Dateien handelt. Wie ich sehe, hat / opt / mqm wahrscheinlich nichts dergleichen. Es gibt nur .so Shared Object-Bibliotheken. Vermutlich haben Sie MQ make stuff mit falscher Option konfiguriert, um keine statischen Bibliotheken zu generieren?