Vinculando com uma biblioteca mais nova em vez de uma antiga

1

Estou tentando compilar a Biblioteca Point Cloud da fonte ( link ). Depois de executar o cmake e make, recebo o seguinte erro de vinculação:

Linking CXX executable ../../bin/pcl_convert_pcd_ascii_binary
../../lib/libpcl_io.so.1.7.2: undefined reference to 'png_set_longjmp_fn'

Como novato, não tenho certeza do que esse erro significa, mas estou assumindo: o arquivo executável plc_convert_pcd_ascii_binary que está tentando criar precisa ser vinculado à biblioteca libpcl_io.so.1.7.2 , mas essa biblioteca contém a função png_set_longjump_fun e a definição desta função não pode ser encontrada?

Por isso, tentei analisar algumas questões semelhantes no Stack Overflow e verifica-se que png_set_longjump_fun está contido na biblioteca libpng , mas foi introduzido apenas após libpng-1.4.x . Depois de executar dpkg -l | grep libpng* , recebo a seguinte saída:

ii  libpng12-0:amd64                                      1.2.50-1ubuntu2                                     amd64        PNG library - runtime
ii  libpng12-dev                                          1.2.50-1ubuntu2                                     amd64        PNG library - development

Portanto, parece que preciso atualizar de libpng12-dev para pelo menos libpng14-dev . No site da libpng, vejo que posso fazer o download da fonte para a versão mais recente (mas a versão mais recente que eu posso obter do apt-get é apenas libpng12-dev ). Mas estou preocupado que possa haver alguns conflitos se eu tiver uma versão instalada via apt-get e outra versão instalada manualmente. No entanto, desinstalar libpng12-dev pode causar problemas se houver pacotes que dependam disso, mas não sejam compatíveis com a versão mais recente.

Portanto, o que eu gostaria de saber é se devo desinstalar / remover libpng12-dev e, em seguida, instalar a nova versão manualmente ou simplesmente instalar a nova versão, mantendo a versão antiga. E se eu fizer o último, como posso ter certeza de que o binário PCL que estou tentando compilar, se vinculará a essa nova biblioteca, em vez da antiga?

Obrigado :)

    
por Karnivaurus 13.08.2015 / 16:13

0 respostas