Incluindo o libmediainfo corretamente em um arquivo CMakeFiles.txt para uso em seus projetos

Publicado por Mauricio Ferrari em 29/04/2022

[ Hits: 1.445 ]

Blog: https://www.youtube.com/@LinuxDicasPro

 


Incluindo o libmediainfo corretamente em um arquivo CMakeFiles.txt para uso em seus projetos



A biblioteca libmediainfo serve basicamente para extrair informações de arquivos multimídia. Se você está precisando extrair informações de arquivos multimídia e não precisa dos recursos do Qt5 por exemplo, você pode usar essa biblioteca. Não tem todo aquele desempenho, mas é uma opção que eu decidi testar no meu projeto.

Para incluir no CMakeFiles.txt, você vai precisar usar esses dois recursos que você provavelmente já usa:

include_directories()
target_link_libraries()

Não sei como ficaria usando find_package(), então fiz dessa forma bem direta:

include_directories(
    /usr/include/MediaInfo
    /usr/include/MediaInfoDLL
)

target_link_libraries(
    mediainfo
)

Já deveria estar pronto, só que sofri com erros como referências não definidas e um erro desse nível:
[ ... ] undefined reference to symbol 'dlclose@@GLIBC_2.2.5' /usr/bin/ld: note: 'dlclose@@GLIBC_2.2.5' is defined in DSO /lib/x86_64-linux-gnu/libdl.so.2 so try adding it to the linker command line /lib/x86_64-linux-gnu/libdl.so.2: could not read symbols: Invalid operation: [ ... ]
Então, olhando para dentro do pacote do libmediainfo, analisei o arquivo /usr/lib64/pkgconfig/libmediainfo.pc, e essa linha me interessou:

Libs: -L/usr/lib64 -lmediainfo -lz

Esse -lz é parte do libzen, dependência do libmediainfo e em relação a mensagem acima, nem coloquei ela completa porque ela mesma já diz o que está faltando.

Na linha de comando isso ficaria assim: -lmediainfo -lz -ldl

O -ldl se refere ao libdl do erro acima. Então, para inclusão completa da biblioteca no CMakeFiles.txt, eu fiz dessa forma:

include_directories(
    /usr/include/MediaInfo
    /usr/include/MediaInfoDLL
)

target_link_libraries(
    mediainfo
    dl
    z
)

E dessa forma funcionou. A versão que eu usei foi a versão 22.03, mas deve funcionar em outras versões.

Uma dica básica sobre seu uso, pode ser encontrado aqui: Use MediaInfo library to get video information in C++ - Katastros

Exemplos de uso, podem ser encontrados aqui:
O site oficial para mais informações:
Outras dicas deste autor

Instalando a última versão do VirtualBox no Linux Mint 20 e Ubuntu 20.04

deb2appimage - Crie AppImage facilmente

Fazendo o XTerm iniciar em tela cheia

Resolvendo problemas de instabilidade no WIFI no Ubuntu e Linux Mint

Mesclando vídeos e áudios usando ffmpeg

Leitura recomendada

Marcações de erro durante escrita do código no VSCODE módulo de C (Intellisense) - ErrorSquiggles

A nova versão 0.3 do X-Money já está disponível!

Desabilitando o "Instant Messaging" no KDE Plasma

Compartilhando arquivos no ubuntu e/ou ubuntu e Windows em 4 minutos

O menu "Aplicativos" sumiu. E agora?

  

Comentários

Nenhum coment�rio foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts