libGL.so或libEGL.so無法連結問題-The imported target "Qt5::Gui" references the file
阿新 • • 發佈:2018-11-01
庫檔案libGL.so或libEGL.so無法連結問題-The imported target "Qt5::Gui" references the file
引言
編譯出錯如下:
CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:27 (message): The imported target "Qt5::Gui" references the file "/usr/lib/x86_64-linux-gnu/libGL.so" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake" but not all the files it references. Call Stack (most recent call first): /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:50 (_qt5_Gui_check_file_exists) /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:74 (_qt5gui_find_extra_libs) /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:158 (include) /usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:99 (find_package) /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:26 (find_package) CMakeLists.txt:56 (find_package)
或者
CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:27 (message): The imported target "Qt5::Gui" references the file "/usr/lib/x86_64-linux-gnu/libEGL.so but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake" but not all the files it references. Call Stack (most recent call first): /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:50 (_qt5_Gui_check_file_exists) /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:74 (_qt5gui_find_extra_libs) /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:158 (include) /usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:99 (find_package) /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:26 (find_package) CMakeLists.txt:56 (find_package)
找到相應的路徑檢視該檔案的屬性,顯示連結已斷。自己解決時還誤把原檔案給刪除了。
最後折騰了很久現總結解決方案如下:
1、首先檢視該檔案是否存在
ls /usr/lib/x86_64-linux-gnu | grep -i libegl
如果該檔案不存在,什麼都不會彈出。
locate libGL
查詢本地的其他路徑裡面的libGL.so檔案,然後以管理員許可權複製一份過去。(一般情況下是有的,只是我操作不當誤刪除了)
sudo su #輸入密碼 cp libGL.so /usr/lib/x86_64-linux-gnu/ #在libGL.so所在資料夾操作,不過無論在哪兒把路徑新增正確就行
2、使用命令列進行連結
ls -l /usr/lib/x86_64-linux-gnu/libGL.so #ln -s 原始檔 目標檔案 省略原始檔則連結到共享庫(x-sharedlib)
如果出現:ln: 無法建立符號連結"/usr/lib/x86_64-linux-gnu/libGL.so": 檔案已存在, 先移除:
sudo rm /usr/lib/x86_64-linux-gnu/libGL.so
當然移除前最好先備份以防萬一,不然又得重複第一步操作.最後進行連結.連結也可以連結到類似的版本或者其他資料夾的libGL.so。成功後也可以在資料夾看一下檔案的屬性是否連線上。
sudo ln /usr/lib/x86_64-linux-gnu/libEGL.so.1 /usr/lib/x86_64-linux-gnu/libEGL.so
記錄一下吧。