|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : novembre 2010 Messages : 158 ![]() |
Bonjour,
Je dois faire un projet pour l'école, en C donc, mais sous Linux. Mais pourquioi pas sous windows, le C sous Linux ferait-il des choses que l'on ne peut faire sous Windows? Mais surtout comment faire pour lancer Linux sans installer une session Linux au démarrage? Je suis un peu perdu, moi je ne veux vraiment pas installer Linux sur mon PC, surtout que j'ai lu qu'il fallait 7Go de libre pour l'installer, et moi je n'en ai que 3 de libre, donc voilà, surtout que je crois qu'il y a une autre manière de faire mais j'ai pas bien capté? |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Ingénieur systèmes embarqués Inscription : juin 2009 Messages : 1 717 ![]() |
Il y a des bibliothèques différentes pour beaucoup de choses entre Linux et Windows, parce que ces deux systèmes d'exploitation sont très différents et que le C utilise beaucoup les capacités du système.
Le "C basique" sera identique mais tu auras ensuite beaucoup de différences dés que utiliseras des fichiers .h standards (quoi que, du coup...) sous Linux mais non existants (ou différents) sous Windows et l'API Windows sous Windows. Un gros intérêt de Linux est l'utilisation d'un terminal avec l'invocation du compilateur GCC manuellement et non via un IDE tel que CodeBlocks qui fait tout pour toi et te masque les subtilités de la production d'un exécutable à partir du code source. Cet intérêt est pédagogique, certes. Tu as plusieurs solutions pour Linux :
La 2e est la plus appréciable, à mon goût. La 3e solution est aussi très pratique. Tu peux booter sur la clé USB sans installer Linux sur ton PC et même enregistrer des choses avec la persistance. Tu peux aussi lancer Linux depuis la clé dans une machine virtuelle avec Virtual Box justement, directement installé sur la clé. Enfin, tu pourras installer Linux sur un PC grâce à cette clé. C'est ainsi que j'ai installé le Linux depuis lequel je t'écris. A défaut de la seconde solution, je te conseillerais cette solution sur clé USB : http://www.linuxliveusb.com/fr
__________________
Si Code::Blocks vous dit undefined reference to 'socket@12', cela signifie que vous avez un problème d'édition des liens. Allez dans Projects / Build Options / Linker Settings / Add et renseigner ici les .a qui vont bien. Exemple pour les sockets : C:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^ Pour vos problèmes d'embarqué, utilisez le forum dédié ! |
|
40
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : novembre 2010 Messages : 158 ![]() |
Ah nickel merci. Réponse complète, j’apprécie, ça va m'aider.
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Baptiste ROUSSELDéveloppeur Temps réel Embarqué Inscription : janvier 2011 Messages : 1 299 ![]() |
Tu peux aussi regarder du côté de Mingw qui est une librairie windows reprenant les librairies Linux.
A priori tout programme qui compile avec cela pourra compiler par la suite sous Linux pour peu que tu n'utilises que la librairie GNU (et pas celle de windows). Pour faire simple tu peux installer Cygwin qui intègre un mini-environnement Linux (avec console et commandes) intégrant Mingw.
__________________
|
|
|
00
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() ![]() Ingénieur systèmes embarqués Inscription : juin 2009 Messages : 1 717 ![]() |
De rien
Ah oui, je n'avais pas pensé à Cygwin car je n'avais pensé qu'à du "vrai" Linux. Je ne suis pas sûr pour autant que le prof accepte cette solution car il souhaite peut-être aussi faire découvrir Linux à ses étudiants et utiliser des fonctionnalités du système. Je n'ai utilisé que très peu Cygwin mais je présume qu'il ne permet pas de tout faire, non ? MinGw est à ma connaissance une version pour Windows de la suite d'outils GNU, comme dit dans leur page : Citation:
__________________
Si Code::Blocks vous dit undefined reference to 'socket@12', cela signifie que vous avez un problème d'édition des liens. Allez dans Projects / Build Options / Linker Settings / Add et renseigner ici les .a qui vont bien. Exemple pour les sockets : C:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^ Pour vos problèmes d'embarqué, utilisez le forum dédié ! |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Baptiste ROUSSELDéveloppeur Temps réel Embarqué Inscription : janvier 2011 Messages : 1 299 ![]() |
Bah oui c'est ça, c'est un portage des librairies et outils GNU de développement sous windows.
Si mes souvenirs sont bon Cygwin régénère tout de même un filesystem et pas mal de commandes, donc m'étonnerai qu'en étude on demande un développement tellement poussé qu'il ne puisse tourner dessus. En tout cas durant mes études il n'y avait guère que la programmation temps réel pour cible unix(ou autre) qui m'empêchait de tout faire sous windows.
__________________
|
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Idriss NeumannConsultant en SSII et auditeur au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 3 799 ![]() |
Bonjour.
Vu le peu de place libre, le dual boot tu peut oublier, sauf si tu investi dans un nouveau disque dur/nouvelle machine. La clef bootable, pourquoi pas (en t'assurant de sauver tes données à chaque boot, je ne sais pas si c'est automatiquement le cas, si oui tant mieux). Cygwin semble être un bon compromis vu le peu de taille (en temps normal* je t'aurais conseillé un dual boot ou une VM mais vu les circonstances ) : normalement il rend ton système conforme POSIX et compatible avec les IPC, les fork, les sockets Unix, etc.Mais même avec 3 GO de libre, tu va pas aller loin tout au long de tes études, entre cette matière et d'autres qui pourraient potentiellement te faire faire des projets avec des EDI assez lourd comme en Java par exemple avec NetBeans ou Eclipse, etc. Donc Cygwin est une solution temporaire pour cette matière mais c'est pas une solution durable à mon sens. Après tu gère ça comme tu veux Cordialement, Idriss * : car malgré tout si on souhaite faire de la prog système Unix, la meilleure solution c'est de passer sous un OS destiné à cet usage. |
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : novembre 2010 Messages : 158 ![]() |
Je viens d'installer Cygwin mais il n'y a qu'une invite de commande là... c'est normal? Parce que ça va pas le faire du tout là :p
|
|
|
00
|
|
|
#9 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 476 ![]() |
Sinon, sur 3Go, on pouvait installer un linux léger (j'en installe bien un sur 64Mo).
Une autre alternative est d'utiliser un live CD et les trois go comme espace de données utilisateur (bon disons réservons 500 Mo pour une partie du système, genre les mise à jour + les trucs que l'on veut en plus). Mais bon, cela peut être lourd à bien gérer. Mais surtout, l'alternative que je suggère, c'est de réduire la partition Windows. Ou encore d'installer Wubi (le ubuntu pour Windows (je ne sais pas comment cela marche)). Ou simplement, de virer Windows
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
00
|
|
|
#10 |
|
Membre expérimenté
![]() Technicien maintenance Inscription : août 2011 Messages : 467 ![]() |
Tu peux aussi utiliser un live-cd. Si tu connais pas, c'est un système complet qui tient et boote sur cd-rom. Attention l'usage intensif peut flinguer ton lecteur cd. Sinon le principe est applicable à 1 clé USB
Après sur le principe, pour faire un "Hello Word" en C que tu le fasses sous linux ou windows peu importe mais effectivement pourquoi ne pas en profiter pour découvrir Linux. La bibliothèque C standard ( c'est le nom ) réagit de la même façon sous linux ou windows. Après tu as la norme POSIX, norme permettant par exemple d'ouvrir un fichier de la même façon sous n'importe quel système POSIX ( Linux, windows, autre ) sous Linux la gestion des fenêtres est géré par exemple par X-Window. Si tu utilises les fonctions de la bibliothèque X-window, tu ne pourra pas utiliser ton programme sous Windows, les fenêtres windows étant gérés différemment. ( via les MFC je crois ) Après tu as les bibliothèques de type qt, GTK. Là c'est intéressant pour avoir une version Linux, windows, MacOs. Il te faudra bien sûr compiler ton code sur chaque plateforme. Considères cela, sans aucune prétention de ma part, comme un cours zero. |
|
|
02
|
|
|
#11 | |
![]() ![]() ![]() Idriss NeumannConsultant en SSII et auditeur au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 3 799 ![]() |
Bonsoir.
Citation:
A mon avis ils vont te faire faire des petits programmes avec des fork, des IPC (sémaphores, files de messages, mémoires partagées, etc), des sockets TCP/UDP, etc. Donc compiler en ligne de commande avec gcc devrait être suffisant Cordialement, Idriss |
|
|
00
|
|
|
#12 | |||
|
Futur Membre du Club
![]() Inscription : novembre 2010 Messages : 158 ![]() |
Citation:
Citation:
Citation:
|
|||
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Baptiste ROUSSELDéveloppeur Temps réel Embarqué Inscription : janvier 2011 Messages : 1 299 ![]() |
Si tu galères avec la ligne de commande tu vas sans aucun doute galérer avec Vi aussi.
![]() Mais saches que tes fichiers sont sur ton disque dur, accessible donc via ton explorateur windows et donc modifiable par tout éditeur texte installé sous windows. Donc en gros tu peux utiliser cygwin comme une simple console pour compiler tes programmes comme tu le ferrai avec la console windows si tu n'utilisais pas un IDE lié à un compilateur.
__________________
|
|
|
10
|
|
|
#14 |
![]() ![]() ![]() Idriss NeumannConsultant en SSII et auditeur au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 3 799 ![]() |
Bonjour.
Voici un article d'initiation à la compilation en console avec gcc : http://blog.developpez.com/ineumann/...n_en_console_a Après comme dit transgohan, tu peux utiliser n'importe quel éditeur de texte Windows (Notepad++ par exemple est assez agréable à utiliser). Puis il suffit de retrouver ton ou tes fichiers .c dans le shell Cygwin et les compiler avec gcc Idriss |
|
00
|
|
|
#15 |
|
Futur Membre du Club
![]() Inscription : novembre 2010 Messages : 158 ![]() |
Bon j'ai viré cygwin et fait de la place sur mon disque. Du coup maintenant j'envisage d'installer une machine virtuelle. Laquelle me conseillez vous donc?
|
|
|
00
|
|
|
#16 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 476 ![]() |
Pour moi, VirtualBox est très bien.
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
10
|
|
|
#17 |
|
Futur Membre du Club
![]() Inscription : novembre 2010 Messages : 158 ![]() |
Mais du coup attendez là, une fois que j'aurais la VirtualBox il me faudra bien autre chose. Qu'est ce que je dois télécharger de plus?
|
|
|
01
|
|
|
#18 | |
![]() ![]() ![]() Idriss NeumannConsultant en SSII et auditeur au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 3 799 ![]() |
Salut.
Citation:
VMWare player est peut être un peu plus simple à utiliser (bien que je préfère VBox) puisque des images compressées sont déjà dispo en .zip prêtes à l’emploi (je ne sais pas si c'est le cas avec VBox). Cordialement, Idriss |
|
|
00
|
|
|
#19 |
|
Futur Membre du Club
![]() Inscription : novembre 2010 Messages : 158 ![]() |
Bien j'ai réussi à lancer Ubuntu 12.10 via VirtualBox d'Oracle.
Puis je utiliser un compilateur C directement depuis Ubuntu, je veux dire en version interface homme/machine, ou je vais devoir de toute façon passer par une invite de commande? EDIT: en fait non je cliques sur try ubuntu, et ça bug. Le programme est obligé de se fermer :/ |
|
|
00
|
|
|
#20 |
|
Expert Confirmé
![]() Baptiste ROUSSELDéveloppeur Temps réel Embarqué Inscription : janvier 2011 Messages : 1 299 ![]() |
Tu peux installer Eclipse, CodeBlock ou autre qui sont des IDE te rendant transparent l'aspect console de commande.
Mais je te recommanderai tout de même de jeter un oeil à comment compiler sous console, c'est pas sorcier d'utiliser GCC ettu te retrouveras un peu moins c** quand après tes études tu seras sous un environnement linux sans IDE. (pas toujours le cas mais mieux vaut savoir que devoir se former à la va-vite...)
__________________
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com