Bonjour,
Pour faire tourner mon interface GTK, j'utilise des chemins d'accès du style "/home/user/Musique". Est-il possible de mettre ce chemin d'accès dans une ligne #define ?
Merci de vos réponses
Version imprimable
Bonjour,
Pour faire tourner mon interface GTK, j'utilise des chemins d'accès du style "/home/user/Musique". Est-il possible de mettre ce chemin d'accès dans une ligne #define ?
Merci de vos réponses
Ca me paraît assez simple à tester non ? ;) La réponse est oui.
oui, mais cela fait un peu un chemin en dur non?
Justement, en mettant ça dans un define, tu peux le changer facilement, y compris via des arguments passés au préprocesseur au moment de la compilation (ie gcc -DCHEMIN="/toto"), la ligne de commande de compilation pouvant elle même être générée à coup de sed ou de ce que tu veux.
Merci, ça fait partie des choses toujours utiles à savoir.
Ah oui après ça dépend du chemin ;) Pour un chemin où t'installe une icône au moment de la compilation de ton appli, c'est clairement ce que tu veux. Pour un /home/blah/Musique c'est effectivemnet plus discutable.
Justement son chemin ne ressemble pas a un chemin standard type /usr/lib, ceci dit c'est peu etre un chemin par défaut pour sont appli et cela peu re changé après (auquel cas je peux eventuellement me taire) ...
Mais même là je le mettrai en paramètre de configuration car on ne sais pas comment sera installé le système chez les autres.
Apres c'est un peu plus long a developper mais c'est un choix qui peux impacter la portabilité.
Pour un truc distribué sous forme de source, soit l'utilisateur le compile lui même, auquel cas tu peux hardcoder le bon chemin au moment de la compilation vu que tu sais où il sera utilisé, soit l'utilisateur l'obtient via un package qui s'installe dans un endroit fixe, donc pas besoin que ça soit paramètrable non plus.
pour un source pourquoi pas a condition que cela soit documenté, pour un binaire pas certain.
On a eu pas mal de client qui nous on demandé que nos produits puissent être installé en dehors du chemin par défaut (ce que tu nomme endroit fixe), si cela lui arrive (je ne sais pas si il le fait dans un contexte pro ou amateur) il faut partir chasser ce genre de chaine pour les remplacer par un parametrage.
par exemple si tu livre sous forme de rpm ce dernier peu etre relocatable
http://www.cyberciti.biz/faq/rpm-relocatable-packages/
bah les solutions les plus simples sont
- un paramètre de lancement (option du style -PATH=)
- une variable d'environnement
- un chemin relatif
Eventuellement, avec le define, un "sed" bien placé (mais à l'installation).
en tous cas hardcoder un chemin me paraît plus qu'un dé-conseil, une erreur à éviter..
je crois que l'on est d'accord,
techniquement c'est possible mais ce n'est pas souhaitable.
D'accord, d'accord. C'était pour un phase de test. Je retiens donc le conseil.
Merci de ces informations.