Problème de build sur VM

Problème de build sur VM

by Xavier Pascal Marie Kervyn -
Number of replies: 5

Bonjour, nous cherchons à éprouver le fonctionnement de notre programme sur les VM (IC-CO-IN-SC).

Cependant, au moment de build notre code sur Qt creator, le message d'erreur suivant s'affiche :

" #error "You must build your code with position independent code if Qt was built with -reduce-relocations." " Compile your code with -fPIC (-fPIE is not enough)."

Nous ne parvenons pas à comprendre comment régler ce problème, qui apparaît dans un fichier qgobal.h (accessible en read-only seulement).

Pouvez-vous nous aider ?

D'avance, merci.

In reply to Xavier Pascal Marie Kervyn

Re: Problème de build sur VM

by Josué Antoine Maechling -

Malgré des recherches je ne vois pas comment cette erreur pourrait survenir dans le cadre du projet.

Vous pouvez déjà nous dire si votre code fonctionnait correctement sur vos machines, et quelles machines vous utilisiez ?

Vous aviez déjà regardé les posts précédents de personnes ne pouvant pas compiler sur les VM ? Vous êtes bien dans le répertoire posixfs comme demandé ?

Aussi vous pouvez vérifier que vous avez fait en sorte que vos fichiers correspondent aussi pour compiler sous linux (par exemple comme Louis l'avait déjà dit si vous avez des include "toupie.h" alors que le fichier est Toupie.h car Linux est sensible à ça).

Même si ça ne règle pas le problème au moins d'autres assistants ou le prof auront plus d'infos pour vous aider.

In reply to Josué Antoine Maechling

Re: Problème de build sur VM

by Xavier Pascal Marie Kervyn -

Merci pour la réponse ! Malheureusement ça ne semble pas régler le problème.

J'ai parcouru les posts du forum mais n'ai rien trouvé qui m'éclaire plus sur l'origine du message d'erreur.

J'ai vérifié ce que tu nous as conseillé de faire et nous sommes bien dans posixfs et incluons à chaque fois les bons noms de fichiers en respectant la casse.

Nous fonctionnons tous les deux avec Windows et tout marche parfaitement sur nos machines, en fait nous souhaitions juste nous assurer qu'un assistant sous Linux puisse corriger correctement notre travail.

J'ai joint une capture d'écran du code du fichier qglobal.h qui s'ouvre quand on clique sur le message d'erreur dans la sortie de l'application.

Est-ce indispensable de pouvoir compiler sur les VMs ?

Attachment Screenshot from 2020-05-30 16-36-36.png
In reply to Xavier Pascal Marie Kervyn

Re: Problème de build sur VM

by Josué Antoine Maechling -
On peut considérer comme indispensable le fait de pouvoir compiler sur les VMs. Je suis sous Windows principalement donc ça ne change pas pour moi mais le professeur utilisant Linux c'est donc primordial. Ceci garantit aussi une compilation commune à tout le monde qui fonctionne (si un assistant n'arrive pas à compiler sur sa machine il peut simplement le faire sur les machines virtuelles).

Vous êtes sûrs que vous avez bien des .pro qui n'ont pas trop été modifiés de l'exemple 5 du graphisme ? (les includes encore pas de problèmes mais c'est surtout les flags)
Vous n'utilisez pas Cmake non plus ? (si vous ne savez pas ce que c'est alors vous ne l'utilisez pas)
Je ne vois aucune autre raison pour laquelle vous auriez des erreurs si vous avez une architecture du projet similaire à l'exemple 5
In reply to Josué Antoine Maechling

Re: Problème de build sur VM

by Xavier Pascal Marie Kervyn -

Bonjour,

Après avoir tout vérifé je pense avoir trouvé la source de notre problème. Nous avons tout fait conformément au tutoriel du prof mais avons inclu QDebug dans un de nos fichiers pour notre traitement des exceptions. C'est cette ligne de code qui générait le message d'erreur, curieusement uniquement sous Linux...

Nous avons donc masqué la commande et repris l'ancienne syntaxe que nous utilisions. Tout notre programme compile et s'exécute maintenant normalement sur Windows comme sur Linux.

Merci pour ton aide !

In reply to Xavier Pascal Marie Kervyn

Re: Problème de build sur VM

by Josué Antoine Maechling -

Ok très bien. Vous pouvez écrire ça dans votre journal et n'hésitez pas à laisser le code avec Qdebug à côté si jamais vous voulez qu'on teste avec ça parce que c'est mieux (si ça marche chez nous évidemment).

Vous pouvez essayer quelque chose quand vous avez Qdebug sur linux : dans le terminal faites qmake et trouvez le Makefile généré par Qt. Cherchez CFLAGS et CXXFLAGS et pour chacune de ces lignes rajoutez l'option -fPIC. Si ça marche alors ça doit vouloir dire qu'il faudrait rajouter une option dans le .pro pour que le Makefile soit généré avec cette option, mais je ne sais pas encore laquelle.