2010-12-06 42 views
3

Juste aujourd'hui j'ai vérifié mon ubuntu avec l'installation de vin,Comment puis-je compiler mon programme Windows dans un seul binaire Linux qui tourne avec Wine?

Delphi 3 à 7 a fonctionné parfaitement (les studios de Rad n'ont pas fonctionné parce qu'ils emploient des morceaux .net). Mais toute l'application que j'ai faite a parfaitement fonctionné !!!!! Et j'entendu dire que cela fonctionne aussi bien sur Mac avec WineBottler

Est-il possible de créer un exécutable linux d'en-tête et de mettre mon application vlc et des trucs du vin requird en elle et de distribuer comme un seul exécutable (.bin)

+0

Parfois, il peut être impossible je pense (peut-être tort), parce que si cela peut être fait facilement; Embarcadero aurait pu le faire il ya quelques années – VibeeshanRC

+1

Quand vous dites Delphi 3 à 7 "a parfaitement fonctionné", cela inclut-il le débogueur? La dernière fois que je l'ai essayé, le débogueur n'a * pas * fonctionné. – dummzeuch

+2

Je préfère bordaeux avec Delphi. –

Répondre

3

Je suppose que c'est ce que winelib est pour. Cependant je ne l'ai jamais essayé. (Kylix Delphi + winelib n'a-t-il pas été compilé pour Linux?)

+0

Ce n'est pas compatible avec les licences. Naturellement, quand quelqu'un viole les termes de la GPL, Stallman tue plusieurs lapins. –

+0

Vous pouvez utiliser des produits sous licence GPL librement jusqu'à ce que vous modifiez – VibeeshanRC

+1

@User, Winelib est sous licence LGPL, pas la licence GPL.Vous êtes autorisé à lier tout ce que vous voulez sans avoir à libérer votre code sous la même licence. Vibeeshan, en tant que développeur, vous ne seriez pas simplement en train de l'utiliser. Vous seriez * en train de * distribuer * des programmes avec * link *, et GNU considère que cela crée un * travail dérivé *. Si la bibliothèque est GPL, votre code doit également être GPL. (Mais Winelib n'est pas GPL.) –

10

il y avait (était) une solution pour Linux de Borland, appelée Kylix. Kylix est basé sur des trucs Qt plus anciens. Mais je voudrais essayer FreePascal/Lazarus, c'est plutôt cool! et le compilateur compile pour de nombreuses plates-formes différentes.

2

Puisque Wine est maintenant stable (il a déjà atteint la version 1.0), il serait logique de demander à l'utilisateur de l'installer en utilisant son gestionnaire de paquets Linux. C'est très rapide et facile. Donc, le vin sera toujours à jour, selon la distribution utilisée.

Ensuite, il est très facile d'installer n'importe quel programme Windows avec Wine. Puisque les exécutables Delphi sont mostly self-contained (si vous n'utilisez pas le BDE ou certaines bibliothèques de bases de données externes), vos clients installeront votre application Delphi de manière «Windows», c'est-à-dire en exécutant un programme d'installation à partir de Wine.

Et cela fonctionnera bien, tel quel.

L'utilisation de WineLib n'est pas une bonne idée, même pas conseillé par les développeurs Wine, si je me souviens bien. Au moins pour les logiciels fermés: dans un ou deux ans, peut-être que vous ne sortirez pas une autre version de votre programme, mais Wine and WineLib aura beaucoup évolué ... Si vous utilisez Wine comme un package externe, votre client peut Assurez-vous qu'il y aura des améliorations pour l'utilisateur final. Si votre logiciel est purement Open Source, l'utilisation de WineLib pourrait avoir un sens. Mais même les entêtes WineLib peuvent évoluer, alors peut-être votre source n'évoluera pas à la même vitesse ...

+0

La dernière fois que j'ai essayé WINE, il ne devait pas programmer plus d'un thread à la fois, ce qui était une sorte de déception. –

+0

@David: les threads de gestion de vin, en deux modes, en fonction du système d'exploitation en cours d'exécution: wine-kthread ou wine-pthread. La nouvelle fonctionnalité NPTL est utilisée sur Linux, qui fonctionne très bien. - voir http://www.winehq.org/docs/winedev-guide/threading –

+0

Eh bien, je créais simplement des threads, les laissant s'exécuter, et je m'attendais à ce que le système les planifie sur différents cœurs. Tout atterrissait sur un seul noyau. Clairement quelque chose de plus était nécessaire mais je ne pouvais pas le résoudre! –