J'ai utilisé pour programmer sous Windows avec Microsoft Visual C ++ et j'ai besoin de créer certains de mes programmes portables (écrits dans Portable C ++) pour être multiplate-forme, ou au moins je peux publier une version de travail de mon programme pour Linux et Windows. P>
Je suis totalement nouveau venu dans le développement des applications Linux (et utilisez rarement le système d'exploitation lui-même). P>
Donc, aujourd'hui, j'ai installé Ubuntu 10.04 LTS (via Wubi) et code équipé :: Blocs avec le compilateur G ++ comme arme principale. Ensuite, j'ai compilé mon tout premier programme Hello World Linux et j'ai confondu sur le programme de sortie. P>
Je peux exécuter mon programme via l'option de menu "Build and Run" dans le code :: Blocs, mais lorsque j'ai essayé de lancer l'application compilée à l'extérieur via un navigateur de fichiers (IN / MYNTFFSPARTITION / MYPROJEJECT / BIN / RELEASE; Oui, je l'ai sauvé dans ma partition NTFS), le programme ne s'est pas présenté. P>
pourquoi? J'ai manqué d'idée. P>
Je dois changer mon Alors je suis venu avec ces questions: p>
Désolé de poser de nombreuses questions, mais je suis vraiment confondu sur ces fondamentaux de développement Linux. P>
Tout type d'aide serait apprécié =) p>
Merci. P> Windows code> et Microsoft Visual Studio MindSet sur Linux code> et Code :: Blocs Code> Mindset . P>
9 Réponses :
./ Programme Code> LI>
- Envoyez le programme, plus tout
.so code> fichiers li>
-
.a code> est la bibliothèque statique, .so code> est des bibliothèques partagées. LI>
- Oui, mais souvent, vous devez la compiler en premier. Li>
ol>
Pas sûr des distributions WxWidgets, cependant. P>
1, UNIX n'a généralement pas une extension particulière pour un exécutable - donc myProg.exe serait juste myProg. Vous devrez peut-être le configurer pour être exécutable si l'IDE ne le fait pas automatiquement, tapez "chmod + x myProg" p>
5, pour WXWindows, je téléchargerais la source et construisez-la, vérifiez les instructions de construction, mais il s'agit probablement d'une question de "configuration; faire; faire installer". Généralement dans UNIX, vous construisez une source de formes de libs afin de pouvoir trouver correctement tous les composants de votre machine - vous avez également la source d'exemples, etc. P>
Je viens d'ajouter des informations à la réponse de RLBond. P>
Puis-je exécuter le programme WXGTK sous X11? P> blockQuote> blockQuote>
Oui, si vous avez un package WXGTK installé :) p>
Pourquoi ne pas simplement rester avec ce que vous savez et développez-vous ?net? Ubuntu est originaire de mono. Vous pouvez continuer à utiliser Visual C ++ ou à monter jusqu'à C # et à faciliter votre vie. P>
Cela ne va pas vraiment répondre à vos questions, mais je pense être une recommandation valide.
Vous avez deux problèmes que vous essayez de traiter avec: p>
Si j'étais vous, je chargerais des blocs de code sous Windows et exécutez-le sur Cygwin ou Mingw, cela vous aidera à vous assurer que votre code est portable à travers les plates-formes. Vous connaissez l'environnement et gagnerait une productivité maximale sur la haie du système d'exploitation. P>
Une fois que vous êtes satisfait de ce qui précède, prenez votre code et déplacez-le à Linux. À ce stade, tout effort de portage devrait être trivial. P>
Depuis que Ubuntu est livré avec des packages WXGTK, vous devez certainement construire contre eux. Pour le développement, vous devriez utiliser une version de débogage, il peut donc être bon de construire vous-même, mais pour le renforcement du déploiement contre les paquets que le système fournit semble mieux. P>
WXX11 est un choix pire que WXGTK, n'utilisez-le que pour les systèmes où WXGTK n'existe pas ou nécessite de nouvelles bibliothèques GTK que sont disponibles. P>
Sur Ubuntu, les packages de bibliothèque nécessaires au développement d'une bibliothèque se terminent généralement par -Dev code>. Par exemple, libwxgtk2.8-dev code> pour WXGTK 2.8. Vous n'avez même pas besoin de vous compiler pour avoir une version de débogage - les symboles de débogage des bibliothèques de distribution sont également emballés (par exemple, libwxgtk2.8-dbg code>).
Un conseil général aux nouveaux arrivants de Linux, mais qui sont techniquement obligés de commencer, est la suivante: Dans votre cas, cela signifie apprendre à acquérir les bons forfaits de développement fournis par Ubuntu. Par exemple, d'autres personnes vous conseillent de télécharger la source de bibliothèques que vous allez utiliser, mais la meilleure façon est de Utiliser le système de paquet d'Ubuntu pour télécharger les bibliothèques que vous souhaitez programmer contre strong>, ainsi que Les en-têtes de cette bibliothèque (souvent placés dans un package séparé) ainsi que les symboles de débogage de la bibliothèque (également souvent dans un package séparé). P>
Regardez dans le système System-> Administration de Ubuntu pour l'outil
Comment puis-je exécuter ma compilée Linux programmes externes (IDE extérieurs)? Dans Windows, je suis simplement exécuté le généré Fichier exécutable (.exe) P>
sur Linux, vous faites la même chose. La seule différence est que sur Linux, le répertoire actuel n'est par défaut pas dans la trajectoire, de sorte que vous le faites: p>
xxx pré> si vous ajoutez le directeur actuel au chemin p> XXX PRE>
Windows Way P>
apt-cache search wx
J'avais +1 vous deux fois si je pouvais, pour que vous puissiez utiliser les informations de dépendance dans des packages pour les bibliothèques, au lieu de groupement.
Je vous ai fermement prudent l'ajout du répertoire actuel au chemin. Bien que ce n'est qu'un très mauvais problème de sécurité si cela est fait en tant que root [Cringe], cela peut certainement finir suffisamment dangereux pour un seul utilisateur, ou au moins conduire à un comportement inattendu assez étrange. Cela est particulièrement vrai si vous le préparez comme vous le suggérez; Il est assez rare de vouloir remplacer quelque chose déjà installé et que vous voulez probablement l'ajouter ( chemin = "$ chemin:." code>) si vous le voulez vraiment vraiment là-bas.
Lorsque vous dites que votre programme ne vous apparaît pas, je suppose que vous voulez dire que c'était là dans le navigateur de fichiers, mais lorsque vous avez double cliqué, vous avez un curseur occupé pendant un moment et que rien ne s'est passé?
Si oui alors Cela signifie que le programme n'a pas exécuté, probablement parce qu'il ne pouvait pas trouver les bibliothèques dynamiques qu'elle est liée. Pour diagnostiquer le problème, vous pouvez l'exécuter à partir d'un terminal, puis vous aurez raconté quel est le problème. P>
Vous voudrez peut-être lire la page manuelle de dans un terminal. Cela vous indique où la liaison de bibliothèque Dynamic Linux recherche des bibliothèques au moment de l'exécution. Il vous fait également référence à un autre outil utile appelé ld.so code> IE Tapez p> ldd code> que je vous recommande de vous familiariser si vous faites du développement Linux. P> P>
Bonne chance. J'ai couru Linux pendant des années, mais double-démarré à Windows pour le développement, car les outils de Linux semblent comme l'âge de pierre. Maintenant, j'utilise juste Windows tout le temps ...
Cela serait posé mieux comme plusieurs questions et de ceux-ci (par exemple l'équivalent de la bibliothèque) ayant déjà été posé auparavant.
Je pense que vous seriez bien mieux avec la bibliothèque QT et QTCreator IDE.
@RLBond: C'est intéressant car je suis un développeur Linux qui travaille à côté de deux développeurs Windows sur la même base de code multiplate-forme. Ils viennent très souvent à moi lorsque la situation devient difficile à cause de tous les outils de développement disponibles sur Linux. Je veux dire 'ldd' et
nm code> sont là-bas sans avoir à aller chercher des objets comme la dépendance Walker. Ils retombent àgdb code> lorsque le débogueur vs refuse de donner quelque chose de sensation et que pour le nombre de fois qu'ils ont demandé "Valgrind" ... :)Drôle. J'ai couru des fenêtres pendant des années, mais Dual a démarré à Linux pour le développement, car je trouve cela plus à l'aise avec tous les outils de développement. Maintenant, je gère presque exclusivement Linux. Dépend probablement du type de développement que vous faites.
Eh bien, différents coups pour différents gens. Je fais du développement C ++ et je ne peux tout simplement pas m'habituer au développement Linux. Il m'a fallu pour toujours pour trouver un automate, par exemple. Je ne peux toujours jamais avoir la suspension de faire des choses avancées dans GDB. Je sais que beaucoup de gens sont très bons avec tous les outils, mais pour quelqu'un qui a grandi sur des idées, je ne peux tout simplement pas la creuser :(