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:
/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. /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