Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

C++ avec K Develop

14 réponses
Avatar
Acetonik
Je débute avec 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 ?
Ou ce qui revient peut etre au même :
Comment configurer K Develop pour qu'il retrouve ces fichiers.

Merci d'avance
--
Acetonik

10 réponses

1 2
Avatar
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.

Merci d'avance


--
Acetonik

Avatar
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)


Avatar
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



Avatar
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)

Avatar
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

Avatar
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. ».

Avatar
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

Avatar
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)

Avatar
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, ..."


Avatar
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.

1 2