首页 > 解决方案 > cmake:加载共享库时出错:libva-drm.so.1 即使我安装了 libva-dev 和 libva2

问题描述

在我的可执行文件的链接过程中,我得到了这个:

[ 85%] Linking CXX executable rosek_qml
/usr/bin/ld: warning: libva-drm.so.1, needed by ../bin/libCTMedia_codec.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libva.so.1, needed by ../bin/libCTMedia_codec.so, not found (try using -rpath or -rpath-link)
[100%] Built target rosek_qml

我以前从来没有遇到过这个错误。通常它只是拒绝完成链接。但在这种情况下,它确实完成了。为什么?当我运行可执行文件时,我得到

./rosek_qml: error while loading shared libraries: libva-drm.so.1: cannot open shared object file: No such file or directory

即使我安装了libva2libva-dev.

这是我的 CMake 文件:

add_library(ctmedia_codec SHARED IMPORTED)
add_library(ctmedia_drm SHARED IMPORTED)
add_library(ctstream SHARED IMPORTED)
set_target_properties(ctmedia_codec PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../bin/libCTMedia_codec.so)
set_target_properties(ctmedia_drm PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../bin/libCTMedia_drm.so)
set_target_properties(ctstream PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../bin/libCTStream.so)

target_link_libraries(${PROJECT}
    Qt5::Widgets
    Qt5::Qml
    Qt5::Quick
    tesseract -lpthread
    ctmedia_codec
    ctmedia_drm
    ctstream
    -lva
    -lva-drm 
    )

标签: c++linuxcmake

解决方案


推荐阅读