Dans projet C++ , mon fichier main.cpp est compilé et exécuté correctement.
Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et *.cpp ?
Ou ce qui revient peut etre au même :
Comment configurer K Develop pour qu'il retrouve ces fichiers.
Dans projet C++ , mon fichier main.cpp est compilé et exécuté correctement. Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et *.cpp ? Dans le meme répertoire que main.cpp , cela fonctionne , mais estce le
meilleur choix?
Meme genre de question, où placer un fichier librairie *.lib ?
Ou ce qui revient peut etre au même : Comment configurer K Develop pour qu'il retrouve ces fichiers.
Merci d'avance
-- Acetonik
Acetonik wrote:
Je débute en C++ avec K Develop.
Dans projet C++ , mon fichier main.cpp est compilé et exécuté
correctement.
Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et *.cpp
?
Dans le meme répertoire que main.cpp , cela fonctionne , mais estce le
meilleur choix?
Meme genre de question, où placer un fichier librairie *.lib ?
Ou ce qui revient peut etre au même :
Comment configurer K Develop pour qu'il retrouve ces fichiers.
Dans projet C++ , mon fichier main.cpp est compilé et exécuté correctement. Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et *.cpp ? Dans le meme répertoire que main.cpp , cela fonctionne , mais estce le
meilleur choix?
Meme genre de question, où placer un fichier librairie *.lib ?
Ou ce qui revient peut etre au même : Comment configurer K Develop pour qu'il retrouve ces fichiers.
Merci d'avance
-- Acetonik
Rakotomandimby (R12y) Mihamina
( Wed, 17 Nov 2004 19:51:43 +0100 ) Acetonik :
Acetonik wrote:
Je débute en C++ avec K Develop.
Dans projet C++ , mon fichier main.cpp est compilé et exécuté correctement. Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et *.cpp ? Dans le meme répertoire que main.cpp , cela fonctionne , mais estce le
meilleur choix?
Il existe un repertoire sous les UNIX, je crois, qui est destiné a recevoir les headders : /usr/include (ou approchant)
Quand un code source se fait compiler il cherche les headers dans /usr/include .
Meme genre de question, où placer un fichier librairie *.lib ?
Meme explication mais cette fois ci , dans /usr/lib .
Ou ce qui revient peut etre au même : Comment configurer K Develop pour qu'il retrouve ces fichiers.
Ca fait 5 ans que j'ai pas fait de C++, mais je pense que tu peux indiquer le chemin totale dans ta directive #include.
Essaie.
Il a trouvé ton *.h parcequ'il etait dans le meme repertoire, et aussi parceque je parie que tu lui a uniquement specifié le nom de fichier, sans le chemin.
Mais place ton *.h ailleurs, puis indique dans tes sources le chemin absolu, tu verras que normalement ca marche aussi.
(je ne suis pas sur a 100%)
Merci d'avance
-- ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance Unofficial FAQ fcolc - http://faq.fcolc.eu.org/ Linux User Group sur Orléans et alentours. Tél: + 33 2 38 76 43 65 (France)
( Wed, 17 Nov 2004 19:51:43 +0100 ) Acetonik :
Acetonik wrote:
Je débute en C++ avec K Develop.
Dans projet C++ , mon fichier main.cpp est compilé et exécuté
correctement.
Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et *.cpp
?
Dans le meme répertoire que main.cpp , cela fonctionne , mais estce le
meilleur choix?
Il existe un repertoire sous les UNIX, je crois, qui est destiné a
recevoir les headders : /usr/include (ou approchant)
Quand un code source se fait compiler il cherche les headers dans
/usr/include .
Meme genre de question, où placer un fichier librairie *.lib ?
Meme explication mais cette fois ci , dans /usr/lib .
Ou ce qui revient peut etre au même : Comment configurer K Develop
pour qu'il retrouve ces fichiers.
Ca fait 5 ans que j'ai pas fait de C++, mais je pense que tu peux indiquer
le chemin totale dans ta directive #include.
Essaie.
Il a trouvé ton *.h parcequ'il etait dans le meme repertoire, et aussi
parceque je parie que tu lui a uniquement specifié le nom de fichier,
sans le chemin.
Mais place ton *.h ailleurs, puis indique dans tes sources le chemin
absolu, tu verras que normalement ca marche aussi.
(je ne suis pas sur a 100%)
Merci d'avance
--
ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance
Unofficial FAQ fcolc - http://faq.fcolc.eu.org/
Linux User Group sur Orléans et alentours.
Tél: + 33 2 38 76 43 65 (France)
Dans projet C++ , mon fichier main.cpp est compilé et exécuté correctement. Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et *.cpp ? Dans le meme répertoire que main.cpp , cela fonctionne , mais estce le
meilleur choix?
Il existe un repertoire sous les UNIX, je crois, qui est destiné a recevoir les headders : /usr/include (ou approchant)
Quand un code source se fait compiler il cherche les headers dans /usr/include .
Meme genre de question, où placer un fichier librairie *.lib ?
Meme explication mais cette fois ci , dans /usr/lib .
Ou ce qui revient peut etre au même : Comment configurer K Develop pour qu'il retrouve ces fichiers.
Ca fait 5 ans que j'ai pas fait de C++, mais je pense que tu peux indiquer le chemin totale dans ta directive #include.
Essaie.
Il a trouvé ton *.h parcequ'il etait dans le meme repertoire, et aussi parceque je parie que tu lui a uniquement specifié le nom de fichier, sans le chemin.
Mais place ton *.h ailleurs, puis indique dans tes sources le chemin absolu, tu verras que normalement ca marche aussi.
(je ne suis pas sur a 100%)
Merci d'avance
-- ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance Unofficial FAQ fcolc - http://faq.fcolc.eu.org/ Linux User Group sur Orléans et alentours. Tél: + 33 2 38 76 43 65 (France)
Acetonik
Rakotomandimby (R12y) Mihamina wrote:
( Wed, 17 Nov 2004 19:51:43 +0100 ) Acetonik :
Acetonik wrote:
Je débute en C++ avec K Develop.
Dans projet C++ , mon fichier main.cpp est compilé et exécuté correctement. Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et *.cpp ? Dans le meme répertoire que main.cpp , cela fonctionne , mais estce le
meilleur choix?
Il existe un repertoire sous les UNIX, je crois, qui est destiné a recevoir les headders : /usr/include (ou approchant)
Quand un code source se fait compiler il cherche les headers dans /usr/include .
Meme genre de question, où placer un fichier librairie *.lib ?
Meme explication mais cette fois ci , dans /usr/lib .
Ou ce qui revient peut etre au même : Comment configurer K Develop pour qu'il retrouve ces fichiers.
Ca fait 5 ans que j'ai pas fait de C++, mais je pense que tu peux indiquer le chemin totale dans ta directive #include.
Essaie.
Il a trouvé ton *.h parcequ'il etait dans le meme repertoire, et aussi parceque je parie que tu lui a uniquement specifié le nom de fichier, sans le chemin.
Mais place ton *.h ailleurs, puis indique dans tes sources le chemin absolu, tu verras que normalement ca marche aussi.
(je ne suis pas sur a 100%)
je viens de trouver dans le menu déroulant du projet " add existing files to project" il semble que mes fichiers soient reconnus dans tous répertoires en utilisant cette fonction
Je vais sans doute utiliserles répertoires /usr/include et /usr/lib ou peut etre /usr/local/include et /usr/local/lib
Merci
-- Cordialement Acetonik
Rakotomandimby (R12y) Mihamina wrote:
( Wed, 17 Nov 2004 19:51:43 +0100 ) Acetonik :
Acetonik wrote:
Je débute en C++ avec K Develop.
Dans projet C++ , mon fichier main.cpp est compilé et exécuté
correctement.
Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et
*.cpp ?
Dans le meme répertoire que main.cpp , cela fonctionne , mais estce le
meilleur choix?
Il existe un repertoire sous les UNIX, je crois, qui est destiné a
recevoir les headders : /usr/include (ou approchant)
Quand un code source se fait compiler il cherche les headers dans
/usr/include .
Meme genre de question, où placer un fichier librairie *.lib ?
Meme explication mais cette fois ci , dans /usr/lib .
Ou ce qui revient peut etre au même : Comment configurer K Develop
pour qu'il retrouve ces fichiers.
Ca fait 5 ans que j'ai pas fait de C++, mais je pense que tu peux indiquer
le chemin totale dans ta directive #include.
Essaie.
Il a trouvé ton *.h parcequ'il etait dans le meme repertoire, et aussi
parceque je parie que tu lui a uniquement specifié le nom de fichier,
sans le chemin.
Mais place ton *.h ailleurs, puis indique dans tes sources le chemin
absolu, tu verras que normalement ca marche aussi.
(je ne suis pas sur a 100%)
je viens de trouver dans le menu déroulant du projet
" add existing files to project"
il semble que mes fichiers soient reconnus dans tous répertoires
en utilisant cette fonction
Je vais sans doute utiliserles répertoires
/usr/include et /usr/lib
ou peut etre
/usr/local/include et /usr/local/lib
Dans projet C++ , mon fichier main.cpp est compilé et exécuté correctement. Dans quel répertoire dois-je mettre mes fichiers à inclure *.h et *.cpp ? Dans le meme répertoire que main.cpp , cela fonctionne , mais estce le
meilleur choix?
Il existe un repertoire sous les UNIX, je crois, qui est destiné a recevoir les headders : /usr/include (ou approchant)
Quand un code source se fait compiler il cherche les headers dans /usr/include .
Meme genre de question, où placer un fichier librairie *.lib ?
Meme explication mais cette fois ci , dans /usr/lib .
Ou ce qui revient peut etre au même : Comment configurer K Develop pour qu'il retrouve ces fichiers.
Ca fait 5 ans que j'ai pas fait de C++, mais je pense que tu peux indiquer le chemin totale dans ta directive #include.
Essaie.
Il a trouvé ton *.h parcequ'il etait dans le meme repertoire, et aussi parceque je parie que tu lui a uniquement specifié le nom de fichier, sans le chemin.
Mais place ton *.h ailleurs, puis indique dans tes sources le chemin absolu, tu verras que normalement ca marche aussi.
(je ne suis pas sur a 100%)
je viens de trouver dans le menu déroulant du projet " add existing files to project" il semble que mes fichiers soient reconnus dans tous répertoires en utilisant cette fonction
Je vais sans doute utiliserles répertoires /usr/include et /usr/lib ou peut etre /usr/local/include et /usr/local/lib
Merci
-- Cordialement Acetonik
Rakotomandimby (R12y) Mihamina
( Wed, 17 Nov 2004 21:14:10 +0100 ) Acetonik :
/usr/local/include et /usr/local/lib
Tu peux plutot créer un repertoire lib et include dans un sous repertoire de ton projet.
Merci
-- ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance Unofficial FAQ fcolc - http://faq.fcolc.eu.org/ Linux User Group sur Orléans et alentours. Tél: + 33 2 38 76 43 65 (France)
( Wed, 17 Nov 2004 21:14:10 +0100 ) Acetonik :
/usr/local/include et /usr/local/lib
Tu peux plutot créer un repertoire lib et include dans un sous
repertoire de ton projet.
Merci
--
ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance
Unofficial FAQ fcolc - http://faq.fcolc.eu.org/
Linux User Group sur Orléans et alentours.
Tél: + 33 2 38 76 43 65 (France)
Tu peux plutot créer un repertoire lib et include dans un sous repertoire de ton projet.
Merci
-- ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance Unofficial FAQ fcolc - http://faq.fcolc.eu.org/ Linux User Group sur Orléans et alentours. Tél: + 33 2 38 76 43 65 (France)
Jérémy JUST
On Wed, 17 Nov 2004 21:14:10 +0100 Acetonik invalide.fr> wrote:
Je vais sans doute utiliserles répertoires /usr/include et /usr/lib ou peut etre /usr/local/include et /usr/local/lib
Ces répertoires sont réservés aux en-têtes et bibliothèques utilisés pour/par les logiciels « en production ». Il ne sont normalement modifiables que par root ou un de ses sbires.
Pour développer, il faut ranger les fichiers quelque part dans ton $HOME. À la limite, crée ~/include et ~/lib, même si c'est conventionnellement fait pour les outils *installés* chez toi, et pas ceux en développement.
-- Jérémy JUST
On Wed, 17 Nov 2004 21:14:10 +0100
Acetonik <acetonik@serveur_ invalide.fr> wrote:
Je vais sans doute utiliserles répertoires
/usr/include et /usr/lib
ou peut etre
/usr/local/include et /usr/local/lib
Ces répertoires sont réservés aux en-têtes et bibliothèques utilisés
pour/par les logiciels « en production ». Il ne sont normalement
modifiables que par root ou un de ses sbires.
Pour développer, il faut ranger les fichiers quelque part dans ton
$HOME.
À la limite, crée ~/include et ~/lib, même si c'est
conventionnellement fait pour les outils *installés* chez toi, et pas
ceux en développement.
On Wed, 17 Nov 2004 21:14:10 +0100 Acetonik invalide.fr> wrote:
Je vais sans doute utiliserles répertoires /usr/include et /usr/lib ou peut etre /usr/local/include et /usr/local/lib
Ces répertoires sont réservés aux en-têtes et bibliothèques utilisés pour/par les logiciels « en production ». Il ne sont normalement modifiables que par root ou un de ses sbires.
Pour développer, il faut ranger les fichiers quelque part dans ton $HOME. À la limite, crée ~/include et ~/lib, même si c'est conventionnellement fait pour les outils *installés* chez toi, et pas ceux en développement.
-- Jérémy JUST
Nicolas George
Jérémy JUST wrote in message :
Pour développer, il faut ranger les fichiers quelque part dans ton $HOME. À la limite, crée ~/include et ~/lib, même si c'est conventionnellement fait pour les outils *installés* chez toi, et pas ceux en développement.
Vous dites vraiment n'importe quoi, les gars !
Pour des entêtes ou une bibliothèque appartenant au projet, les fichiers doivent se trouver dans l'arbre de compilation du projet. Dans un répertoire à part éventuellement si le projet est d'ampleur, mais à l'intérieur de l'arbre. Et en particulier, les headers doivent être appelés avec « #include "fichier" » et pas avec « #include <fichier> » et « -I. ».
Jérémy JUST wrote in message
<20041118003416.061d7b88@norbert.inapg.inra.fr>:
Pour développer, il faut ranger les fichiers quelque part dans ton
$HOME.
À la limite, crée ~/include et ~/lib, même si c'est
conventionnellement fait pour les outils *installés* chez toi, et pas
ceux en développement.
Vous dites vraiment n'importe quoi, les gars !
Pour des entêtes ou une bibliothèque appartenant au projet, les fichiers
doivent se trouver dans l'arbre de compilation du projet. Dans un répertoire
à part éventuellement si le projet est d'ampleur, mais à l'intérieur de
l'arbre. Et en particulier, les headers doivent être appelés avec
« #include "fichier" » et pas avec « #include <fichier> » et « -I. ».
Pour développer, il faut ranger les fichiers quelque part dans ton $HOME. À la limite, crée ~/include et ~/lib, même si c'est conventionnellement fait pour les outils *installés* chez toi, et pas ceux en développement.
Vous dites vraiment n'importe quoi, les gars !
Pour des entêtes ou une bibliothèque appartenant au projet, les fichiers doivent se trouver dans l'arbre de compilation du projet. Dans un répertoire à part éventuellement si le projet est d'ampleur, mais à l'intérieur de l'arbre. Et en particulier, les headers doivent être appelés avec « #include "fichier" » et pas avec « #include <fichier> » et « -I. ».
Acetonik
Nicolas George wrote:
Jérémy JUST wrote in message :
Pour des entêtes ou une bibliothèque appartenant au projet, les fichiers doivent se trouver dans l'arbre de compilation du projet. Dans un répertoire à part éventuellement si le projet est d'ampleur, mais à l'intérieur de l'arbre. Et en particulier, les headers doivent être appelés avec « #include "fichier" » et pas avec « #include <fichier> » et « -I. ». OK
Cependant si je souhaite utiliser un *.lib commun à plusieurs projets , est ce que je peux quand même le placer dans un répertoire de niveau supérieur à celui du projet?
En fait je souhaiterai utiliser une bibliothèque de fonctions graphiques ...et je n'en trouve pas !!
Merci pour votre aide -- Acetonik
Nicolas George wrote:
Jérémy JUST wrote in message
<20041118003416.061d7b88@norbert.inapg.inra.fr>:
Pour des entêtes ou une bibliothèque appartenant au projet, les fichiers
doivent se trouver dans l'arbre de compilation du projet. Dans un
répertoire à part éventuellement si le projet est d'ampleur, mais à
l'intérieur de l'arbre. Et en particulier, les headers doivent être
appelés avec « #include "fichier" » et pas avec « #include <fichier> » et
« -I. ».
OK
Cependant si je souhaite utiliser un *.lib commun à plusieurs projets , est
ce que je peux quand même le placer dans un répertoire de niveau supérieur
à celui du projet?
En fait je souhaiterai utiliser une bibliothèque de fonctions graphiques
...et je n'en trouve pas !!
Pour des entêtes ou une bibliothèque appartenant au projet, les fichiers doivent se trouver dans l'arbre de compilation du projet. Dans un répertoire à part éventuellement si le projet est d'ampleur, mais à l'intérieur de l'arbre. Et en particulier, les headers doivent être appelés avec « #include "fichier" » et pas avec « #include <fichier> » et « -I. ». OK
Cependant si je souhaite utiliser un *.lib commun à plusieurs projets , est ce que je peux quand même le placer dans un répertoire de niveau supérieur à celui du projet?
En fait je souhaiterai utiliser une bibliothèque de fonctions graphiques ...et je n'en trouve pas !!
Merci pour votre aide -- Acetonik
Rakotomandimby (R12y) Mihamina
( Thu, 18 Nov 2004 09:00:38 +0100 ) Acetonik :
Cependant si je souhaite utiliser un *.lib commun à plusieurs projets ...et je n'en trouve pas !!
Ben donne le chemin absolu ? -- ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance Unofficial FAQ fcolc - http://faq.fcolc.eu.org/ Linux User Group sur Orléans et alentours. Tél: + 33 2 38 76 43 65 (France)
( Thu, 18 Nov 2004 09:00:38 +0100 ) Acetonik :
Cependant si je souhaite utiliser un *.lib commun à plusieurs projets
...et je n'en trouve pas !!
Ben donne le chemin absolu ?
--
ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance
Unofficial FAQ fcolc - http://faq.fcolc.eu.org/
Linux User Group sur Orléans et alentours.
Tél: + 33 2 38 76 43 65 (France)
Cependant si je souhaite utiliser un *.lib commun à plusieurs projets ...et je n'en trouve pas !!
Ben donne le chemin absolu ? -- ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance Unofficial FAQ fcolc - http://faq.fcolc.eu.org/ Linux User Group sur Orléans et alentours. Tél: + 33 2 38 76 43 65 (France)
Remi Moyen
On Thu, 18 Nov 2004, Acetonik wrote:
Pour des entêtes ou une bibliothèque appartenant au projet, les fichiers doivent se trouver dans l'arbre de compilation du projet. Dans un répertoire à part éventuellement si le projet est d'ampleur, mais à l'intérieur de l'arbre. Et en particulier, les headers doivent être appelés avec « #include "fichier" » et pas avec « #include <fichier> » et « -I. ». OK
Cependant si je souhaite utiliser un *.lib commun à plusieurs projets , est ce que je peux quand même le placer dans un répertoire de niveau supérieur à celui du projet?
En fait, je crois qu'il faut que tu distingues entre le code (entêtes + bibliothèques + sources) que tu es en train de développer, et le code (entêtes + bibliothèques) que tu utilises pour un autre projet :
Dans le premier cas, tout devrait se trouver dans l'arbre de ton projet, comme expliqué par Nicolas George. Ce qui n'empêche pas de structurer ton projet, par exemple avec un répertoire src qui contient les sources (.cpp), include pour les entêtes (.h) et lib pour les bibliothèques (.so et .a). Et même éventuellement obj pour les fichiers objets (.o).
Dans le deuxième cas, il est clair que aller chercher, pour le projet toto, des fichiers dans /path/to/mes/sources/titi/include, c'est un peu pas très pratique (surtout si il faut ensuite faire la même chose pour tutu, et tata, ...), et donc dans ce cas, ça peut être pas mal de te faire un répertoire d'includes "génériques".
Évite de mettre ça dans /usr/include, c'est plutôt pour les choses bien propres et bien bouclées. Personnellement, dans ce cas, je les mets dans /usr/local/include. Comme c'est à peu près standard comme position, je n'ai pas trop à modifier les Makefiles pour aller chercher les fichier là où il faut.
Pour les bibliothèques, je les mets dans ce cas-là dans /usr/local/lib. En modifiant ensuite le /etc/ld.so.conf, ça permet de mettre ce répertoire dans la liste des répertoires automatiquement parcourus pour chercher les bibliothèques (plus besoin de -L/usr/local/lib, quoi). C'est donc à peu près transparent comme position, tout en gardant une séparation entre ce qui vient des paquets officiels de mon système (dans /usr), et ce que j'ai bricolé moi-même (dans /usr/local).
En fait je souhaiterai utiliser une bibliothèque de fonctions graphiques ...et je n'en trouve pas !!
Dans ce cas, comme tu ne comptes pas modifier cette bibliothèque (du moins je suppose), tu es clairement dans le deuxième cas. À moins que tu ne comptes ré-écrire une bibliothèque ? Mais pourquoi as-tu besoin de passer par un projet KDevelop et tout ? Normalement, les archives de bibliothèques sont fournies avec des Makefiles qui font tout le boulot.
Au passage, quelle bibliothèque cherches-tu, et sous quelle distrib es-tu ? La plupart des bibliothèques standards existent déjà en paquets pré-compilés pour la plupart des distribution, alors... ? -- Rémi Moyen "Malgré les apparences, le temps est très varié à Nancy : pluie, nuages, neige, brouillard, grêle, ..."
On Thu, 18 Nov 2004, Acetonik wrote:
Pour des entêtes ou une bibliothèque appartenant au projet, les fichiers
doivent se trouver dans l'arbre de compilation du projet. Dans un
répertoire à part éventuellement si le projet est d'ampleur, mais à
l'intérieur de l'arbre. Et en particulier, les headers doivent être
appelés avec « #include "fichier" » et pas avec « #include <fichier> » et
« -I. ».
OK
Cependant si je souhaite utiliser un *.lib commun à plusieurs projets , est
ce que je peux quand même le placer dans un répertoire de niveau supérieur
à celui du projet?
En fait, je crois qu'il faut que tu distingues entre le code (entêtes +
bibliothèques + sources) que tu es en train de développer, et le code
(entêtes + bibliothèques) que tu utilises pour un autre projet :
Dans le premier cas, tout devrait se trouver dans l'arbre de ton projet,
comme expliqué par Nicolas George. Ce qui n'empêche pas de structurer ton
projet, par exemple avec un répertoire src qui contient les sources
(.cpp), include pour les entêtes (.h) et lib pour les bibliothèques (.so
et .a). Et même éventuellement obj pour les fichiers objets (.o).
Dans le deuxième cas, il est clair que aller chercher, pour le projet
toto, des fichiers dans /path/to/mes/sources/titi/include, c'est un peu
pas très pratique (surtout si il faut ensuite faire la même chose pour
tutu, et tata, ...), et donc dans ce cas, ça peut être pas mal de te faire
un répertoire d'includes "génériques".
Évite de mettre ça dans /usr/include, c'est plutôt pour les choses bien
propres et bien bouclées. Personnellement, dans ce cas, je les mets dans
/usr/local/include. Comme c'est à peu près standard comme position, je
n'ai pas trop à modifier les Makefiles pour aller chercher les fichier là
où il faut.
Pour les bibliothèques, je les mets dans ce cas-là dans /usr/local/lib. En
modifiant ensuite le /etc/ld.so.conf, ça permet de mettre ce répertoire
dans la liste des répertoires automatiquement parcourus pour chercher les
bibliothèques (plus besoin de -L/usr/local/lib, quoi). C'est donc à peu
près transparent comme position, tout en gardant une séparation entre ce
qui vient des paquets officiels de mon système (dans /usr), et ce que j'ai
bricolé moi-même (dans /usr/local).
En fait je souhaiterai utiliser une bibliothèque de fonctions graphiques
...et je n'en trouve pas !!
Dans ce cas, comme tu ne comptes pas modifier cette bibliothèque (du moins
je suppose), tu es clairement dans le deuxième cas. À moins que tu ne
comptes ré-écrire une bibliothèque ? Mais pourquoi as-tu besoin de passer
par un projet KDevelop et tout ? Normalement, les archives de
bibliothèques sont fournies avec des Makefiles qui font tout le boulot.
Au passage, quelle bibliothèque cherches-tu, et sous quelle distrib es-tu
? La plupart des bibliothèques standards existent déjà en paquets
pré-compilés pour la plupart des distribution, alors... ?
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."
Pour des entêtes ou une bibliothèque appartenant au projet, les fichiers doivent se trouver dans l'arbre de compilation du projet. Dans un répertoire à part éventuellement si le projet est d'ampleur, mais à l'intérieur de l'arbre. Et en particulier, les headers doivent être appelés avec « #include "fichier" » et pas avec « #include <fichier> » et « -I. ». OK
Cependant si je souhaite utiliser un *.lib commun à plusieurs projets , est ce que je peux quand même le placer dans un répertoire de niveau supérieur à celui du projet?
En fait, je crois qu'il faut que tu distingues entre le code (entêtes + bibliothèques + sources) que tu es en train de développer, et le code (entêtes + bibliothèques) que tu utilises pour un autre projet :
Dans le premier cas, tout devrait se trouver dans l'arbre de ton projet, comme expliqué par Nicolas George. Ce qui n'empêche pas de structurer ton projet, par exemple avec un répertoire src qui contient les sources (.cpp), include pour les entêtes (.h) et lib pour les bibliothèques (.so et .a). Et même éventuellement obj pour les fichiers objets (.o).
Dans le deuxième cas, il est clair que aller chercher, pour le projet toto, des fichiers dans /path/to/mes/sources/titi/include, c'est un peu pas très pratique (surtout si il faut ensuite faire la même chose pour tutu, et tata, ...), et donc dans ce cas, ça peut être pas mal de te faire un répertoire d'includes "génériques".
Évite de mettre ça dans /usr/include, c'est plutôt pour les choses bien propres et bien bouclées. Personnellement, dans ce cas, je les mets dans /usr/local/include. Comme c'est à peu près standard comme position, je n'ai pas trop à modifier les Makefiles pour aller chercher les fichier là où il faut.
Pour les bibliothèques, je les mets dans ce cas-là dans /usr/local/lib. En modifiant ensuite le /etc/ld.so.conf, ça permet de mettre ce répertoire dans la liste des répertoires automatiquement parcourus pour chercher les bibliothèques (plus besoin de -L/usr/local/lib, quoi). C'est donc à peu près transparent comme position, tout en gardant une séparation entre ce qui vient des paquets officiels de mon système (dans /usr), et ce que j'ai bricolé moi-même (dans /usr/local).
En fait je souhaiterai utiliser une bibliothèque de fonctions graphiques ...et je n'en trouve pas !!
Dans ce cas, comme tu ne comptes pas modifier cette bibliothèque (du moins je suppose), tu es clairement dans le deuxième cas. À moins que tu ne comptes ré-écrire une bibliothèque ? Mais pourquoi as-tu besoin de passer par un projet KDevelop et tout ? Normalement, les archives de bibliothèques sont fournies avec des Makefiles qui font tout le boulot.
Au passage, quelle bibliothèque cherches-tu, et sous quelle distrib es-tu ? La plupart des bibliothèques standards existent déjà en paquets pré-compilés pour la plupart des distribution, alors... ? -- Rémi Moyen "Malgré les apparences, le temps est très varié à Nancy : pluie, nuages, neige, brouillard, grêle, ..."
Nicolas George
Acetonik wrote in message <cnhkv5$m2a$:
Cependant si je souhaite utiliser un *.lib
Euh, c'est quoi ces *.lib dont tu parles tout le temps ?
commun à plusieurs projets , est ce que je peux quand même le placer dans un répertoire de niveau supérieur à celui du projet?
Il faut voir sur quoi s'étend ta bibliothèque. Normalement, elle va s'étendre sur un seul projet, et et tout ce qui en dépend ensuite ne fait qu'importer ces fonctions.
La bonne méthode alors pour faire ça, c'est de compiler le projet contenant la bibliothèque, puis l'installer, ce qui va placer les entêtes dans $PREFIX/include et les bibliothèques dans $PREFIX/lib (avec $PREFIX qui vaut souvent /usr/local, mais qui doit être configurable). Une fois le premier projet installé, on n'y touche plus, on utilise la forme en <...> de #include, et on ajouter -I$PREFIX/include et -L$PREFIX/lib.
Si vraiment il s'agit de projets séparés, mais qui se développent au fur et à mesure, il faudra mettre provisoirement dans le Makefile du second un -I et un -L vers le premier.
En fait je souhaiterai utiliser une bibliothèque de fonctions graphiques ...et je n'en trouve pas !!
Euh, il y en a plein, des bibliothèques graphiques.
Acetonik wrote in message <cnhkv5$m2a$1@news.tiscali.fr>:
Cependant si je souhaite utiliser un *.lib
Euh, c'est quoi ces *.lib dont tu parles tout le temps ?
commun à plusieurs projets , est
ce que je peux quand même le placer dans un répertoire de niveau supérieur
à celui du projet?
Il faut voir sur quoi s'étend ta bibliothèque. Normalement, elle va
s'étendre sur un seul projet, et et tout ce qui en dépend ensuite ne fait
qu'importer ces fonctions.
La bonne méthode alors pour faire ça, c'est de compiler le projet contenant
la bibliothèque, puis l'installer, ce qui va placer les entêtes dans
$PREFIX/include et les bibliothèques dans $PREFIX/lib (avec $PREFIX qui vaut
souvent /usr/local, mais qui doit être configurable). Une fois le premier
projet installé, on n'y touche plus, on utilise la forme en <...> de
#include, et on ajouter -I$PREFIX/include et -L$PREFIX/lib.
Si vraiment il s'agit de projets séparés, mais qui se développent au fur et
à mesure, il faudra mettre provisoirement dans le Makefile du second un -I
et un -L vers le premier.
En fait je souhaiterai utiliser une bibliothèque de fonctions graphiques
...et je n'en trouve pas !!
Euh, il y en a plein, des bibliothèques graphiques.
Euh, c'est quoi ces *.lib dont tu parles tout le temps ?
commun à plusieurs projets , est ce que je peux quand même le placer dans un répertoire de niveau supérieur à celui du projet?
Il faut voir sur quoi s'étend ta bibliothèque. Normalement, elle va s'étendre sur un seul projet, et et tout ce qui en dépend ensuite ne fait qu'importer ces fonctions.
La bonne méthode alors pour faire ça, c'est de compiler le projet contenant la bibliothèque, puis l'installer, ce qui va placer les entêtes dans $PREFIX/include et les bibliothèques dans $PREFIX/lib (avec $PREFIX qui vaut souvent /usr/local, mais qui doit être configurable). Une fois le premier projet installé, on n'y touche plus, on utilise la forme en <...> de #include, et on ajouter -I$PREFIX/include et -L$PREFIX/lib.
Si vraiment il s'agit de projets séparés, mais qui se développent au fur et à mesure, il faudra mettre provisoirement dans le Makefile du second un -I et un -L vers le premier.
En fait je souhaiterai utiliser une bibliothèque de fonctions graphiques ...et je n'en trouve pas !!
Euh, il y en a plein, des bibliothèques graphiques.