malvitor
(usa Ubuntu)
Enviado em 22/10/2015 - 13:29h
paulo1205 escreveu:
malvitor escreveu:
Valeu Thihup pela ajuda. O problema é que não posso alterar essa biblioteca, ela é fornecida pelo fabricante do mainframe e será instalada tambem em outras maquinas que não terei acesso.
Se a biblioteca está usando a macro errada -- a certa seria mesmo
unix , não
UNIX --, ou você a troca pelo certa (você tem o fonte, por que não poderia mexer?) ou tenta definir um valor para a macro por fora do código, tentando. Uma possibilidade, que pode funcionar ou não, dependendo de como estejam os Makefiles, é definir a variável de ambiente
CFLAGS com o valor “
-DUNIX=1 ”.
PS: Teria alguma de desinstalar essa biblioteca, gostaria de reinstala-la do zero pois ocorreu um durante a instalação. Já tentei o make unstall no diretorio onde tem os arquios para a instalação dela mas quando tento aparece make: *** Sem regra para processar o alvo `uninstall'. Pare..
Se a biblioteca se instalar num diretório próprio, deve bastar apagá-lo (e eventualmente limpar alguma sujeira que fique no ld.so.cache). Outra possibilidade é você ver quais comandos um “
make install ” executa (talvez usando “
make -n install ”) e executar os correspondentes comandos para desfazer o que ele fizer.
paulo1205 fiz o que voce recomendou em relação a alterar o makefile pra mudar o DUNIX para DUNIX=1 e quando utilizei o comando make -n install o resultado foi:
install lib/libcaenhvwrapper.so.5.77 /usr/lib
ln -sf /usr/lib/libcaenhvwrapper.so.5.77 /usr/lib/libcaenhvwrapper.so
cp ./include/CAENHVWrapper.h /usr/include/CAENHVWrapper.h
ldconfig
make all
rm -f HVWrapperDemo/MainWrapp.o HVWrapperDemo/CmdWrapp.o HVWrapperDemo/console.o
e quando fiz o make install ocorreu um erro ja havia acontecido anteriormente e acredito que seja a cuasa dos problemas
install lib/libcaenhvwrapper.so.5.77 /usr/lib
ln -sf /usr/lib/libcaenhvwrapper.so.5.77 /usr/lib/libcaenhvwrapper.so
cp ./include/CAENHVWrapper.h /usr/include/CAENHVWrapper.h
ldconfig
make all
make[1]: Entrando no diretório `/home/joao/Downloads/Linux'
gcc -DUNIX=1 -DLINUX -o HVWrapperDemo/HVWrappdemo HVWrapperDemo/MainWrapp.o HVWrapperDemo/CmdWrapp.o HVWrapperDemo/console.o\
-L /usr/lib -lcaenhvwrapper -lncurses -lpthread -ldl -lm
/usr/bin/ld: ignorando /usr/lib/libcaenhvwrapper.so incompatível ao procurar por -lcaenhvwrapper
/usr/bin/ld: ignorando /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libcaenhvwrapper.so incompatível ao procurar por -lcaenhvwrapper
/usr/bin/ld: ignorando /usr/lib/../lib/libcaenhvwrapper.so incompatível ao procurar por -lcaenhvwrapper
/usr/bin/ld: ignorando /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../libcaenhvwrapper.so incompatível ao procurar por -lcaenhvwrapper
/usr/bin/ld: ignorando //usr/lib/libcaenhvwrapper.so incompatível ao procurar por -lcaenhvwrapper
/usr/bin/ld: não foi possível encontrar -lcaenhvwrapper
collect2: error: ld returned 1 exit status
make[1]: ** [HVWrapperDemo/HVWrappdemo] Erro 1
make[1]: Saindo do diretório `/home/joao/Downloads/Linux'
make: ** [install] Erro 2
Pelo meu pouco conhecimento em linux acho que esta ocorrendo algum erro entre o link da libcaenhvwrapper.so.5.77 com
libcaenhvwrapper.so que não deixa reconhecer o lcaenhvwrapper, ou não. Bem obrigado pela ajuda dos dois ai de qualquer forma, vou esperar mais um pouco pra ver aparece alguma outra luz.
PS. Tem como rodar o makefile_64 ao invés do makefile normal ou isto já é feito automaticamente, por que pelo que eu vi ele copia a libcaenhvwrapper.so.5.77 da pasta /lib sendo que tem outra na pasta /lib/x64.
PS2. Escrevi isso tudo pra depois perceber a mer... que eu fiz. Era só renomear os makefiles. Porem o problema do ifdef UNIX continua mesmo alterando pra DUNIX=1 acho que vou ter que alterar na mão grande mesmo.
PS3. Vou colocar umas orelhas de burro no meu avatar.