Makefile está procurando biblioteca MQ no lugar errado no LINUX

0

No meu makefile eu tenho uma linha

/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    

Quando eu executo, o erro é:

/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

O que eu não entendo é por que ele está tentando encontrar a biblioteca do MQ no lugar errado:

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

Se eu sei que a biblioteca do MQ é:

/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    
    
por user736280 08.06.2017 / 16:52

1 resposta

0

link

A opção -l é para bibliotecas de objetos estáticos, que são arquivos libsomething.a. Como eu vejo o seu / opt / mqm é provável que não tenha nada desse tipo. Somente .so compartilhavam bibliotecas de objetos lá. Provavelmente você configurou o MQ fazendo coisas com a opção errada para não gerar libs estáticas?

    
por 16.06.2017 / 11:14

Tags