Rendre un environnement de build portable.

a marqué ce sujet comme résolu.

Bonjour à tous,

Je travaille actuellement à développer un petit noyau en C (github du projet). Et j’ai plusieurs machines sur lesquels je travaille :

  • Une machine sous Fedora
  • Une machine windows mais j’utilise le sous-system windows pour linux (équivalent Ubuntu)
  • Et une dernière sous Lubuntu (dont je n’ai pas les droits super utilisateur)

Le problème c’est que touts ces machines ont des versions de GCC, GNU LD ou NASM différente. Et je voulais savoir comment je pouvais rendre tous ces outils portables pour ensuit garder le même environnement et éviter des problèmes. Comme par exemple le driver pour la souris qui ne marche pas quand je le compile avec GCC 5.3 et LD 2.26 mais qui marche parfaitement avec GCC 5.2 et LD 2.24.

Merci d’avance :)

Désolé mais ça me semble compromis x)
J’aurais dis d’utiliser des outils tel que autotools ou cmake mais tu n’as pas les droits sur Lubuntu.
Tu pourrais peut-être mettre les binaires de tes outils de compilation (gcc, ld et nasm) sur une clé USB ext4 (pour la gestion des droits) et les exécuter directement depuis la clé, mais pour cela il faut que tous tes systèmes lisent les mêmes exécutables (ELF 32 ou 64 bits, LSB ou MSB) et joindre les bibliothèques partagées (en espérant aussi que tous tes systèmes lisent le même format).
Il y a de bonnes chances que sa marche mais c’est pas vraiment portable. c’est portable comme dans "ordinateur portable" mais pas dans le sens "application portable", mais si j’ai bien compris, c’est ce que tu veux, ce n’est pas l’application que tu portes dans un nouvel environnement mais tout l’environnement que tu portes sur ta cible.
Tu pourrais également faire une VM contenant ton projet et environnement si tes systèmes disposent d’outils de virtualisation (et tous le même !)

J’aurais dis d’utiliser des outils tel que autotools ou cmake mais tu n’as pas les droits sur Lubuntu.

leroivi

Il reste toutefois la possibilité des les installer dans un répertoire utilisateur, ne nécessitant ainsi pas de droits administrateurs.

Salut,

Reste qu’il a besoin des droits pour les installer […] ?

leroivi

Il n’a besoin que de droits utilisateurs dans ce cas puisqu’il « installe » alors les fichiers ELF dans son dossier personnel. Il ne lui reste alors plus qu’à modifier la variable PATH pour utiliser ces derniers.

+0 -0

Oui, la solution la pratique pour moi serais de pouvoir récupérer les binaires de mes outils (GCC, NASM et LD) et de les mettre avec mes sources dans un dossier tools par exemple. Et modifier mon Makefile pour utiliser les outils incorporés avec mon projet en non ceux de l’environnement. Problème c’est que je ne sais pas trop comment récupérer les binaires :/

Une machine virtuelle pourrait être une autre option mais il va falloir que je me documente un peu ;)

+0 -0

Il peut le faire depuis les dépôts officiels (il ne s’agit foncièrement que de serveurs FTP), depuis les sites officiels (s’ils en fournissent) ou alors il peut compiler le tout depuis les sources.

Édit : semi-grilled.

+0 -0

Bah ok, j’avais dans l’idée qu’il fallait les droits pour utiliser le gestionnaire de paquet.
Sinon, les binaires gcc ld et nasm que tu possède déjà sont sûrement dans /usr/bin

Edit : au pire avec un coup de locate tu les trouveras

leroivi

Ou plus simplement, which nom_binaire . Une solution serait d’utiliser une des machines comme machine de build, si tu veux quelque chose de propre =)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte