0
votes

Méthode efficace d'écriture Code C ++ dans Windows IDE et compilation du terminal Linux?

Tout d'abord, il s'agit de maximiser la productivité en tant que programmeur C ++. Mon travail régulier consiste à utiliser Windows SSH Client tel que xshell pour vous connecter à la machine Linux distante via SSH et faire de nombreux travaux de Linux. Imaginez que je souhaite mettre en place un projet de gros C ++ et maintenant je suis confronté à un problème.

  • Si j'écris du code dans Windows IDE, j'ai besoin de propager les modifications à chaque fois que je modifierai certains fichiers à la machine Linux et de compiler ici. (Considérons la compilation de Windows n'est pas réalisable ou très lente)
  • Si j'écris du code dans le terminal Linux, car il s'agit d'être un grand projet (non seulement un simple hérogène), la productivité en fonction de Vim ou d'Emacs ne peut pas correspondre à celle de Windows IDE.

    Ici, je veux exclure certaines options telles que samba , configuration de nombreux plugins pour VIM ou simplement acheter un Mac. Et si j'écris sous Windows, il est indésirable de copier tout le contenu de la machine distante chaque fois que vous synchronisez.

    Toute façon ou outils pour rendre ce processus plus facile et productif?


7 commentaires

Que diriez-vous d'utiliser git ?


Que diriez-vous d'une machine virtuelle?


Personnellement, je ferais tout simplement tout à distance, mais je suis aussi beaucoup plus productif et j'ai un meilleur flux de travail à l'aide de Emacs que de certains IDE.


J'ai vu beaucoup de gens mentionnant Git, mais je n'ai vu personne non plus mentionné que vous pouvez également configurer une intégration continue afin de tirer et de compiler automatiquement le code lorsqu'un commit entre.


@newkid git semble ne pas être une option. Parfois, les changements ne sont pas un engagement complet, il est donc très indésible de rendre CodeBase pleine de modifications sans réserve.


@Shawn n'importe quel blogs sur votre flux de travail?


Un blog? Lol non. Écrivez le code, compiler, déboguer, répéter.


3 Réponses :


1
votes

Voici quelques options:

  • Option 1: Utilisez MOBAXTERM (qui est un XServer très rapide sur Windows) pour exécuter votre IDE. Je gère Qt Creator sur Internet et c'est instantané, donc pas de retard.
  • Option 2: Utilisez VNC uniquement pour ce programme. Donc, créez un serveur VNC et dirigez-vous votre IDE. Cela ne fonctionne pas pour moi car le serveur VNC (RealVNC, je pense) s'écrase tout le temps. Peut-être que vous aurez de la chance.
  • option 3: Utilisez VNC avec environnement de bureau. J'ai ceci pour travailler au travail, mais pas à la maison. Cela dépend de l'environnement de bureau que vous souhaitez utiliser, quelque chose comme Icewm va bien (la commande sur Linux est vncserver pour cela).
  • option 4: Utilisez X2GO comme environnement distant. Installez le serveur sur votre Linux et connectez-le avec SSH.
  • Option 5: Utilisez Protocole XRDP . Installez-le sous Linux et utilisez Windows Remote Desktop pour vous connecter à votre machine Linux à partir de Windows.

    Avertissement: Si vous utilisez VNC, sachez que la mise en œuvre standard VNC ne fournit pas une connexion cryptée. Vous devez donc utiliser quelque chose comme le tunnel SSH (avec mastic, ou similaire) de Windows à Linux, puis tunnel votre connexion VNC à travers elle.


2 commentaires

Merci pour de nombreuses options. Pour l'option 1, je suis très curieux. Voulez-vous dire que vous pouvez installer QTCreator (qui est l'une de mes IDE préférées) sur Linux et l'exécuter via mobaxtem sous Windows?


@Lewischan Oui. C'est ce que je fais tout le temps. Vous allez l'adorer! Le seul problème est que vous ne pouvez pas enregistrer vos sessions. Donc, si votre ordinateur portable (machine Windows) s'arrête, vous devrez redémarrer Qt Creator. De plus, si la connexion est interrompue, elle fermera. MOBAXTERM, cependant, fait tout ce qui est en mesure de garder la session connectée. Parfois même si je déconnecte de force mon wifi.



1
votes

Voici comment je travaille dans cette situation:

  1. Configuration d'un repo git distant
  2. Utilisez votre poste de travail régulier pour modifier votre code (Windows OS), à l'aide de l'IDE qui vous convient
  3. Gardez une coquille ouverte sur votre machine de linux distante (SSH)
  4. Dès que vous avez quelque chose d'exécutable / testable:
    1. commettez vos modifications et git poussez
    2. dans votre shell de Linux: git tire & Build ( faire ?)

6 commentaires

La chose est, avant de compiler, je peux faire des erreurs indignes telles que des erreurs de grammaire, des erreurs d'orthographe ou des erreurs logiques. Je ne pense pas que les changements puissent faire un commit résonable.


Vous avez un point. Mais 1 - sauf si une situation vraiment spécifique, il ne devrait pas y avoir de raison de ne pas pouvoir construire sous Windows. 2-Bien sûr, les commentations erronées ne sont pas souhaitables, mais elles peuvent être écrasées par la suite si cela est vraiment ennuyeux. Mais, bien sûr, visionnage à distance (autre réponse) est également une bonne idée.


Je ne crois pas que quiconque dans le monde utilise vraiment cette solution et reçoit vraiment des résultats pour des programmes énormes. J'imaginais simplement que la quantité de temps gaspillée commettant, poussant, bâtiment (avec la parallélisation, car vous avez des modèles dans votre programme et que vous souhaitez terminer rapidement), puis devez faire défiler vers le haut et le bas pour voir que vous avez dactylographié COT < / Code> au lieu de COUT ... puis revenez à votre IDE, corrigez-le, commettez-le, de vous engager et de revenir à la finale, de voir que vous avez manqué un demi-côon ailleurs. J'aurais quitté la programmation avant de devoir faire cela. Voulez-vous faire défiler tout cela pour trouver des avertissements?


[...] Je construis avec Qt Creator avec Ctrl + b. Cela me montre des avertissements immédiatement. Il utilise également le modèle de Clang pour prédire les erreurs de compilation avant de compiler. Je gère Valgrind avec 1 clic pour effectuer des contrôles de mémoire pour mon programme final. Je gère le débogueur avec 1 clic et peut naviguer dans mon code débogué sans avoir à taper up up up pour atteindre mon cadre de pile actuel. Parce que je clique sur le cadre de la pile que je veux. Je exécute le profilage de la fonction avec 1 clic. Je ne comprendrai jamais comment les gens obtiennent un travail avec des terminaux seulement. Eh bien, peut-être dans les années 1990. Mais maintenant, vous avez QT Creator et / ou VSCode pour ce luxe.


@Thequantumphysicist Je suis d'accord que ce flux de travail n'est pas le meilleur. Mais que se passe-t-il si vous n'avez pas de bureau sur la machine distante?


@kebs Nous sommes tous allés dans ces situations, mais ce n'est pas un environnement de développement complet que vous pouvez suggérer à OP! Il demande une configuration commode pour son développement. Vous ne pouvez pas suggérer une solution temporaire à un problème temporaire pour une personne qui recherche une configuration permanente. Et pour répondre à votre question: vous installez un bureau sur cette machine si vous devez le faire. Sinon, ce n'est pas une machine appropriée pour le développement permanent.



0
votes

Je viens d'utiliser VirtualBox:

  1. Créez un VM contenant votre saveur préférée de Linux
  2. Créer un projet dans votre IDE Windows de choix - J'utilise VS2015 sur le Mo.
  3. Définissez le répertoire du projet VS comme point de montage externe / dossier partagé du VM. Donc, toutes les modifications de code sont intrinsèquement disponibles sur la machine Linux.
  4. Lorsque son temps de compiler suffit juste Alt-Tab dans les fenêtres VM et le type.

3 commentaires

Cela semble une solution, mais pas bon pour moi. Démarrer une machine virtuelle sous Windows ralentira d'autres applications. Outre le projet C ++, je construit consomme beaucoup plus de ressources lors de la compilation.


Non seulement ce VMS est très peu pratique pour des raisons de performance, mais VirtualBox est définitive de toute façon. C'est très lent. J'ai utilisé VMware depuis des années, mais c'est un peu peu pratique de tout garder sur votre ordinateur portable. À un moment donné, votre ordinateur portable ne peut pas gérer toute la mémoire requise pour le débogage et l'analyse de la mémoire. Ma solution idéale est Ssh à mon poste de travail et l'utiliser. Cela dépend de la question de savoir si vos applications sont "Hello World!" ou ceux avec des fichiers source 2000. Pour les petites applications ... Qui se soucie? Vm va bien.


Points justes. Une adaptation de ceci serait d'exécuter Linux sur une machine physique séparée et de partager / monter le répertoire de projet sur le réseau local. Juste "optionering". :)