1. 程式人生 > >libGL.so或libEGL.so無法連結問題-The imported target "Qt5::Gui" references the file

libGL.so或libEGL.so無法連結問題-The imported target "Qt5::Gui" references the file

庫檔案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

記錄一下吧。