c++ - Qt:no se puede encontrar el error-lGL





compiler-construction qt-creator ubuntu-13.04 (4)


Instale el paquete "libgl1-mesa-dev":

sudo apt-get install libgl1-mesa-dev

Acabo de reinstalar QtCreator, creé un nuevo proyecto ( aplicación Qt ) y obtuve esto después de la compilación:

/usr/bin/ld: **cannot find -lGL**
collect2: error: ld returned 1 exit status
make: *** [untitled1] Error 1
18:07:41: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC 32bit)
When executing step 'Make'

(El proyecto está vacío, no he realizado ningún cambio )

Qt Creator 2.7.2
Basado en Qt 5.1.0 (32 bit)
Ubuntu 13.04

¿Cómo resuelvo este problema?




no necesita instalar nada libGL ya está instalado con Ubuntu, solo necesitas vincularlo. (probado para Ubuntu 14.x y 15.x, podría funcionar para versiones posteriores)

  1. Primero ubique la biblioteca GL
  2. A continuación, vincúlelo en / usr / lib
  3. Si falta la biblioteca, se puede instalar a través del paquete libgl1-mesa-dev

Aquí es cómo puedes hacer esto:

$ locate libGL
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2.0.0
$ sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so



Resolvió este problema hace solo un minuto en suse. Simplemente haga el siguiente paso a continuación y QTCreator debería funcionar bien.

sudo zypper install --type pattern devel_basis




De los http://qt-project.org/doc/qt-5.0/qtdoc/cmake-manual.html que está vinculado, parece que puede encontrar Qt5Core en lugar de Qt5Widgets. Eso creará un destino importado llamado Qt5::WinMain . De los documentos de Qt :

Los objetivos importados se crean para cada módulo Qt. Eso significa que Qt5<Module>_LIBRARIES contiene un nombre de un destino importado, en lugar de una ruta a una biblioteca.
...
Cada módulo en Qt 5 tiene un objetivo de biblioteca con la convención de nomenclatura Qt5::<Module>

find_package( Qt5Widgets REQUIRED )
find_package( Qt5Core REQUIRED )
...
add_executable( aosdesigner WIN32 ${AOSDESIGNER_ALL_FILES} )
target_link_libraries( aosdesigner
    ${Boost_LIBRARIES}
    utilcpp
    aoslcpp
    Qt5::WinMain  # <-- New target available via find_package ( Qt5Core )
)

qt5_use_modules( aosdesigner Widgets )

También recomendaría que elimines tus dos llamadas link_libraries ya que es un comando obsoleto y especificaría CMake versión 2.8.9 en lugar de 2.8 como el mínimo requerido en la parte superior de tu CMakeLists.txt, ya que es necesario para qt5_use_modules .





c++ qt compiler-construction qt-creator ubuntu-13.04