2010-04-06 9 views
12

Je veux faire une application Windows facile à déployer et je me demandais quels systèmes de programmation peuvent créer des fichiers .exe Windows totalement autonomes? Comme un plus, si le même peut être fait avec MacOSX et Linux de la même source, ce serait un bonus. J'ai regardé Realbasic mais ils ont depuis abandonné le concept unique .exe. Mise à jour: Je cherche quelque chose qui peut fonctionner de Windows XP à Windows 7, quelle que soit la version de .NET installée. Est-ce seulement possible?Quels langages de programmation peuvent générer des fichiers .exes autonomes?

+0

Vous souciez-vous des dépendances telles que les bibliothèques d'exécution? – snicker

+0

Si je veux lancer l'exe en tant qu'application web et avoir accès à une bibliothèque de base de données/un système de fichiers dont les librairies d'exécution auraient-elles besoin? – Zubair

+0

Il n'est pas possible de porter vers OSX et Linux si vous êtes basé sur .NET; alors que oui, il y a Mono, les librairies disponibles sont suffisamment différentes pour que vous soyez toujours confronté à une grosse tâche de portage. –

Répondre

8

Delphi compile en un exécutable et génère des exécutables Windows natifs. Donc, pas de dépendances à tout type de cadre. Si vous utilisez Free Pascal (fpc) et le Lazarus IDE, vous pouvez même développer pour Linux et Apple à partir de la même source. Si vous utilisez des DLL externes, cela deviendrait un peu plus délicat, mais vous pourriez les emballer dans votre fichier de ressources tout en conservant la propriété exe.

+0

Je n'ai trouvé aucun lien pour télécharger delphi. Est-il toujours disponible? – Zubair

+1

Oui, Delphi existe toujours, Borland l'a vendu à Embarcadero http://www.embarcadero.com/products/delphi. –

+0

Oui Delphi existe. Dans des conditions honteuses, avec un IDE assez ennuyeux et très cher mais oui, vous pouvez développer de superbes applications en Delphi. Je l'aimais. Maintenant, ce n'est rien d'autre que de se débattre. Le concepteur visuel est génial, vous pouvez esquisser les éléments visibles en un tournemain; alors, bonne chance avec l'objet jungle et la documentation décevante. J'ai commencé avec Pascal dans les années 90, donc je n'ai pas peur de me salir les mains. mais au lieu de Delphi j'utilise ZZEE php-to-exe quand je peux. Dit beaucoup. – dkellner

1

Vous pouvez le faire pour Windows avec les langages .NET en utilisant ILMerge

ILMerge est un utilitaire pour fusionner plusieurs ensembles .NET en un seul ensemble de .NET. Il fonctionne aussi bien sur les exécutables que sur les DLL et propose plusieurs options pour contrôler le traitement et le format de la sortie. Voir la documentation d'accompagnement pour plus de détails.

Cependant:

Actuellement, ILMerge ne fonctionne que sur les plateformes Windows. Il ne supporte pas encore le Rotor ou le Mono.

+0

ILMerge peut-il inclure des assemblages de base du framework, ce qui annule le besoin d'installer le .NET Framerwork? – snicker

+0

@snicker - Je ne sais pas. L'aide ne dit pas que vous ne pouvez pas. – ChrisF

+1

@snicker: @ChrisF: Vous avez toujours besoin du CLR pour exécuter un assembly IL, même si vous pouvez lier dans mscorlib.dll. –

2

Je vous recommande de regarder AutoIt. C'est un langage de script facile à utiliser qui sera compilé dans un exe, donc il n'y a pas de temps d'exécution nécessaire. Ce serait pour les fenêtres seulement si.

http://www.autoitscript.com/autoit3/index.shtml

Depuis le site Web:

AutoIt v3 est un logiciel gratuit BASIC langage de script conçu pour automatiser le script GUI Windows et générale . ... AutoIt est également très petit, autonome et fonctionnera sur toutes les versions de Windows prêtes à l'emploi sans ennuyeux "runtimes" requis!

+0

Errr .. non, AutoIt ne compile pas en C++. –

+0

Merci pour la correction. J'ai édité ma réponse. – BigJoe714

+0

OK :) Downvote supprimé. –

6

Vous pouvez certainement le faire avec C/C++. Techniquement, les bibliothèques d'exécution sont requises, mais elles devraient déjà être installées sur n'importe quel système Windows, Mac ou Linux.

Avec .NET vous pouvez compiler vers un EXE, mais bien sûr le framework .NET est requis. Pour les versions plus récentes de Windows, il devrait être installé par défaut, mais sur les versions plus anciennes (XP ou plus anciennes?), Il peut ou ne peut pas être là. Et bien sûr, vous ne pouvez pas vous attendre à ce que mono soit là par défaut sur Linux ou Mac non plus.

+5

Vous pouvez définir le compilateur pour lier le runtime statiquement. –

+0

@Billy - oui, c'est un bon point. –

+0

J'ai enlevé ceci comme réponse acceptée car j'ai vu d'abord des problèmes de programmes .Net qui fonctionnent sur .Net avant 4.0 mais pas après – Zubair

3

Vous pouvez utiliser Tcl/tk. La technologie que vous devez rechercher est un "starpack", qui combine un exécutable d'exécution (un starkit) avec un runtime spécifique à la plate-forme (un "tclkit") pour créer un exécutable à un seul fichier. Il est remarquable dans le fait que ce n'est pas seulement du code compilé, mais un système de fichiers virtuel complet pouvant inclure des images, du son, des données, etc.

Cette même technologie fonctionne pour de nombreuses plates-formes à partir du même code. La seule chose qui est différente est l'exécution spécifique à la plate-forme. Vous pouvez même "compiler" dans le sens où vous pouvez copier le runtime de plusieurs plates-formes sur votre boîte de dev, puis construire des starpacks pour chaque plate-forme sans devoir être sur chaque plate-forme.

3

Tcl peut le faire, en particulier en produisant starpacks. Ils peuvent être produits pour toutes les plates-formes à partir du même code. Notez que cela inclut également toutes les bibliothèques d'exécution nécessaires (à l'exception des éléments tels que la bibliothèque C, mais vous ne voulez pas que soit statique dans des circonstances normales).

0

QBasic peut :-)

J'ai écrit quelques outils de ligne de commande en utilisant le!

+0

QBasic ne peut pas. QuickBASIC peut. –

+0

Je me suis corrigé, je pensais qu'ils étaient les mêmes. – NibblyPig

+1

QuckBASIC génère des fichiers DOS .exe. Windows moderne exécute ces * NTVDM * qui n'est pas disponible sur les versions 64 bits. Sous Linux et OS X, vous aurez également besoin d'une couche d'émulation ou de virtualisation pour exécuter les programmes DOS. –

4

Pour Windows les langues suivantes sont viables:

  • C (MS, gcc)
  • C++ (MS, g ++, Digital Mars)
  • D (Digital Mars)
  • Delphi (Embarcadero "comment épelez-vous cela? juste des voyages de la langue n'est-ce pas?)
  • Fortran (Intel, Salford Software)
  • Visual Basic 6 (MS)
  • Lua (vous aurez besoin d'un special tool pour le faire, mais il est faisable)
  • C#, VB.Net, F #, J #, etc (en supposant que vous ne me dérange pas en utilisant la technologie .Net)
JavaFX 2.2 prend en charge cela.
+0

N.B. Vous pouvez utiliser C#, VB etc ... sans avoir à installer .net; Vous ne pouvez pas utiliser la bibliothèque .net, ce qui signifie que vous devez tout écrire vous-même ou utiliser une autre bibliothèque, par exemple. Mono: http://www.mono-project.com/Main_Page –

2

c/C++ purebasic delphi VB6

J'espère que cette aide :)

2

est ici une bonne source pour un certain nombre de langages de programmation comme base qui construisent de petites EXEs autonomes. Certains sont multi-plateforme pour Windows et Linux:

www.basic.mindteq.com

2

Vous pouvez utiliser la liberté de base qui est facile et pas cher, vous pouvez facilement faire des programmes autonomes pour Windows mais pas possible de transférer à MacOS ou Linux.

Questions connexes