Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Mac
Mac Avant de poster: Lire La FAQ Mac; Voir la page Outils; Voir les tutoriels.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/04/2007, 13h45   #1
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 18
Points : 18
Par défaut [X11] Bundle MacOS utilisant X11

Edit : Il y a eu un bug, j'avais posté dans "Programmation Linux/Gtk/Gtk+"

Bonjour à tous.

J'ai réussi à installer GTK+ sur mon Mac à l'aide de Fink et de X11. Je me suis créé un template pour XCode, permettant de me générer un bundle *.app.

Cependant, il m'est impossible de le lancer ! Pas de problème de compilation, mais pour lancer l'application, il faut lancer l'exécutable à la main à l'aide la commande :
Code :
open-x11 path_et_nom_de_lexecutable
Comment créer un bundle fonctionnel ?

Merci,
Guillom.
guimers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 17h50   #2
Membre Expert
 
Avatar de Ceylo
 
Étudiant
Inscription : janvier 2007
Messages : 1 196
Détails du profil
Informations personnelles :
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 1 196
Points : 1 310
Points : 1 310
Peut-être en mettant ton exécutable en tant que sous-exécutable, je m'explique.

Créer une application bundle normale qui va lancer ton sous exécutable en utilisant l'option -x11 avec la fonction system("open -x11 ./ton_executable"); par exemple. ça fait deux programmes pour le prix d'un mais c'est toujours mieux .
__________________
Cherche un(e ) développeur/se pour la version Windows et/ou Linux de sfeMovie! Puis pour aider sur le noyau une fois les portages au point
Blog à ne SURTOUT PAS visiter :p
Ceylo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 18h20   #3
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 18
Points : 18
Ah ouais, bonne idée. Je vais tester.
guimers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 19h54   #4
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 18
Points : 18
Je n'ai pas réussi.

Si quelqu'un peut m'aider à modifier mon template afin qu'il comporte deux exécutables réunis dans le même *.app; et que le bundle fonctionne..
Voila le template : GTK+ Bundle.zip.

Merci d'avance.
Guillom.
guimers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 21h52   #5
Membre Expert
 
Avatar de Ceylo
 
Étudiant
Inscription : janvier 2007
Messages : 1 196
Détails du profil
Informations personnelles :
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 1 196
Points : 1 310
Points : 1 310
J'ai testé un simple petit system("open-x11 ./executable"); et en effet ça ne fonctionne pas.

En fait j'ai trouvé la solution, qui est pour l'instant incomplète : utiliser l'adresse complète (system("open-x11 /Users/****/Desktop/Proj.../executable");). ça fonctionne mais il me reste à coder une fonction pour remplacer les espaces de l'adresse par des '\ ', ce que je ferai quand j'aurai plus d'énergie .

Voici ce que j'ai codé pour l'instant :
Code C :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
char *getExecPath(char const *bundlePath, char const *execName)
{
    char *path = NULL;
 
    if (bundlePath != NULL && execName != NULL)
    {
        path = malloc(strlen(bundlePath) + strlen(execName) + 1);
        if (path != NULL)
        {
            *path = '\0';
            strcat(path, bundlePath);
 
            size_t i, len = 0;
            len = strlen(bundlePath);
 
            for(i = len; path[i] != '/' ;i--)
                path[i] = '\0';
 
            strcat(path, execName);
        }
    }
    return path;
}
 
int main(int argc, char **argv)
{
    if (argc > 0)
    {
        char *path = getExecPath(argv[0], "Indenteur" );
        char *commande = malloc(strlen(path) + 12);
 
        if (commande != NULL)
        {
            *commande = '\0';
            strcat(commande, "open-x11 ");
            strcat(commande, path);
 
            system(commande);
        }
    }
    return 0;
}

Donc ça ne marche que pour les adresses sans espace pour le moment.
__________________
Cherche un(e ) développeur/se pour la version Windows et/ou Linux de sfeMovie! Puis pour aider sur le noyau une fois les portages au point
Blog à ne SURTOUT PAS visiter :p
Ceylo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 22h17   #6
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 18
Points : 18
Merci de te pencher sur mon problème.

En fait, je cherchais surtout comment faire deux exécutables dans le même projet, et comment dire que "tel fichier doit être compilé pour tel executable" ?

Pour les relier, j'aurais su faire.

Merci encore,
Guillom.
guimers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 13h03   #7
Membre Expert
 
Avatar de Ceylo
 
Étudiant
Inscription : janvier 2007
Messages : 1 196
Détails du profil
Informations personnelles :
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 1 196
Points : 1 310
Points : 1 310
Je ne vois pas bien où est le problème…

J'ai fait un projet qui fait ce que tu cherchais. Construit d'abord la cible (Target) 'executable' puis la cible 'Bundle', et hop tout est fait.
Fichiers attachés
Type de fichier : zip Bundle.zip (4,0 Ko, 7 affichages)
__________________
Cherche un(e ) développeur/se pour la version Windows et/ou Linux de sfeMovie! Puis pour aider sur le noyau une fois les portages au point
Blog à ne SURTOUT PAS visiter :p
Ceylo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2007, 22h04   #8
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 18
Points : 18
En fait, le problème est que je voudrais faire un projet qui me construit l'exécutable avant de construire bundle .app : tout en même temps. Pas faire l'exécutable à part puis le mettre dans le bundle.

Est-ce possible ?

Merci beaucoup.
Guillom.
guimers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 17h07   #9
Membre Expert
 
Avatar de Ceylo
 
Étudiant
Inscription : janvier 2007
Messages : 1 196
Détails du profil
Informations personnelles :
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 1 196
Points : 1 310
Points : 1 310
Non ce n'est pas possible, tu as deux exécutables donc forcément deux cibles, qui peuvent rentrer dans un seul projet. Es-tu si flemmard que ça ?
__________________
Cherche un(e ) développeur/se pour la version Windows et/ou Linux de sfeMovie! Puis pour aider sur le noyau une fois les portages au point
Blog à ne SURTOUT PAS visiter :p
Ceylo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2007, 12h41   #10
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 33
Points : 18
Points : 18
Ah non, pas du tout ! ^^ C'était juste pour savoir si c'était possible, parce que ça aurait été pratique.

Merci beaucoup !
guimers est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h16.


 
 
 
 
Partenaires

Hébergement Web