Installez Qt 5.2.1 et faites pkg-config pour le reconnaître

Mon système d’exploitation (Ubuntu 12.04) est livré avec une bibliothèque Qt4 pré-packagée et d’autres éléments pertinents. Mais je voulais utiliser la dernière version de Qt 5.2.1 , je l’ai installée et elle fonctionne correctement, supposons que j’ai compilé ce framework qui dépend de Qt.

Ce que je devais faire, $LD_LIBRARY_PATH append les bibliothèques Qt 5.2.1 à $LD_LIBRARY_PATH . Mon chemin d’accueil Qt 5.2.1 est /opt/Qt5.2.1/5.2.1/gcc_64 , et donc mon $LD_LIBRARY_PATH contient /opt/Qt5.2.1/5.2.1/gcc_64/lib (et /opt/Qt5.2.1/Tools/QtCreator/lib pour les éléments liés à qtcreator)

Cependant, récemment, j’essaie de comstackr la dernière octave de gnu. Son script configure recherche les cflags Qt (par exemple, les cflags -l / -I / -L ) en cflags le cflags pkg-config .

Ce que je suis venu à savoir que pkg-config recherche les fichiers .pc appropriés pour obtenir les informations exactes relatives à tous les indicateurs de compilation / liaison. Mon système (Ubuntu) maintient une liste de tous les .pc fichiers .pc requirejs dans /var/lib/dpkg/info/pkg-config.list . Mais je n’ai pas $PKG_CONFIG_PATH variable d’environnement $PKG_CONFIG_PATH sur Ubuntu 12.04 (je ne sais pas pourquoi).

Mon Qt5 nouvellement installé a un ensemble de fichiers /opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/ dans /opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/ .

Alors, comment puis-je faire pkg-config pour reconnaître les bibliothèques de développement du Qt 5.2.1 nouvellement installé?

Je sais que cela pourrait être résolu en installant simplement les paquets Qt4 -dev du -dev Ubuntu, mais je ne veux pas le faire. J’ai besoin de la vanille Qt 5.2.1 à d’autres fins.

REMARQUE:

  • J’ai ajouté le chemin /opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/ au /opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/ pkg-config.list mais le fichier pkg-config ne met pas à jour les indicateurs de compilation en conséquence.
  • Ajouter le chemin ( /opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/ ) à $PKG_CONFIG_PATH ne fonctionne pas aussi bien.

Voici la sortie du script de configuration de l’octave.

Ce problème est dû au fait qu’Octave recherche QtCore.pc , QtGUI.pc et QtNetwork.pc mais Qt5 semble les avoir renommés Qt5Core.pc , Qt5GUI.pc et Qt5Network.pc . Une solution consiste à créer des liens symboliques pour eux:

 cd /opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/ ln -s ./Qt5Core.pc ./QtCore.pc ln -s ./Qt5GUI.pc ./QtGUI.pc ln -s ./Qt5Network.pc ./QtNetwork.pc cd octave_build_dir export $PKG_CONFIG_PATH="/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/" ./configure # with fingers crossed 

Je ne sais pas pourquoi la raison du changement de nom. Je me demande s’il devrait y avoir une sorte de mécanisme en place où les versions unversion seraient dans $PKG_CONFIG_PATH , et changer vos préférences changerait le lien en version correcte.

Enfin, vos config.log et config.status auraient été plus utiles que la simple sortie de configure. Les fichiers mentionnés auront les commandes et les sorties réelles de votre configuration.

La réponse de carandraug est correcte, mais je n’ai pas eu besoin de créer un lien symbolique entre les fichiers .pc (Qt 5.9.5). Pour éviter de supprimer d’autres adresses pkg-config, exportez PKG_CONFIG_PATH comme ci-dessous:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/

Et pour l’exécuter au démarrage et à l’échelle du système (pas besoin d’exporter dans chaque session de terminal), placez ces lignes à la ligne inférieure de “.bashrc”:

 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/Qt5.2.1/5.2.1/gcc_64/lib/pkgconfig/ export PKG_CONFIG_PATH