# Utilisation d'une librairie GNU : Cgicc



## Ynnead (24 Janvier 2007)

Bonjour à tous,

Pour des projets de développement Web, je dois utiliser la librairie GNU Cgicc qui est une implémentation de CGI pour C++. 
J'ai téléchargé et installé la librairie sur mon MBP C2D avec succès, tout semble s'être correctement déroulé.

Seulement voilà, dès que je tente de compiler le moindre fichier cpp de test qui inclus des classes de cette librairie, g++ m'affiche des centaines (au moins) d'erreur de type "template with c linkage" pour chaque librairie et sous librairie incluse. 

J'ai parcouru le net pour essayer de glaner des informations sur cette erreur, et elle semble survenir assez souvent lorsque l'on utilise des librairies C/C++ sur Mac OS X (problème de version de gcc ? j'en sais trop rien). Mais j'ai du mal à exploiter les quelques résultats, et encore plus de mal à comprendre pourquoi l'erreur survient dans mon cas.

J'ai franchement pas de pistes, donc si quelqu'un a déjà eu ces erreurs envahissantes, et surtout comment il les a résolues, son coup de main sera le grand bienvenu !

Merci d'avance

PS : Je compile à la main dans le bash avec g++, version de gcc = 4.0.1


----------



## bompi (24 Janvier 2007)

Ce que je vais te dire ne vas pas t'arranger :
1. j'ai t&#233;l&#233;charg&#233; et d&#233;compress&#233; CGICC 3.2.3
2. j'ai pass&#233; 'configure'
3. j'ai fait 'make'
4. c'est compil&#233;.

Infos :
- syst&#232;me : PPC / 10.4.8
- XCode : 2.4
- g++ : 4.0.1

Donc, sur PPC, &#231;a marche.


----------



## Ynnead (24 Janvier 2007)

En fait, chez moi, le configure, le make et le make install fonctionnent tr&#232;s bien (enfin la librairie est correctement install&#233;e semble-t-il).
C'est pour compiler un cpp qui inclus des headers de cgicc que &#231;a me pose un probl&#232;me.
Par exemple, pour tester, avec un test.cpp tout b&#234;te dans ce genre :


```
#include <cgicc/Cgicc.h>

int main(){
  cgicc::Cgicc sonCgicc ;
  return 0 ;
}
```
 compil&#233; avec la commande 
	
	



```
g++ -Wall -I /usr/include/cgicc -c test.cpp
```
 provoquera les erreurs "template with c linkage" en s&#233;rie. Je suis vraiment dans le flou


----------



## ntx (24 Janvier 2007)

Il ne manquerais pas dans ta commande un truc du genre :
-L<chemin de ta lib> -lCgicc


----------



## Ynnead (24 Janvier 2007)

Non, j'ai l'habitude de faire l'&#233;dition de liens apr&#232;s, et l&#224; &#231;a boque d&#232;s la compilation.

Mais si tu as essay&#233; d'une autre mani&#232;re avec succ&#232;s, &#231;a m'int&#233;resse aussi


----------



## ntx (24 Janvier 2007)

Je n'avais pas fait attention au "-c".
Chez moi, ton programme de test compile sans erreur. Donc à priori pas de soucis sur PPC.   Si quelqu'un peut essayer sur un Intel ?


----------



## Luke58 (24 Janvier 2007)

Salut Ynnead.

Je suis à l'IUT avec toi et, pour le même projet, j'ai essayé d'installer cgicc sur mon Mac Intel.
Apparemment sur place, on utilise g++ version 3.3. Quand j'essaie de compiler un programme simple comme celui que tu as décris avec g++-3.3, j'obtiens :

```
$ g++-3.3 -Wall cgicc.cpp -o cgicc
g++-3.3: installation problem, cannot exec `cc1plus': No such file or directory
```
En effet, si je cherche cc1plus dans le disque, il n'apparait que dans des dossiers "ppc" pour la version 3.3 de gcc/g++

```
$ locate cc1plus
/usr/libexec/gcc/darwin/ppc/3.3/cc1plus
/usr/libexec/gcc/darwin/ppc/3.3-fast/cc1plus
/usr/libexec/gcc/i686-apple-darwin8/4.0.1/cc1plus
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/cc1plus
```
Donc il semblerait que si on veut compiler avec g++ 3.3 comme à l'IUT, c'est mort car cette version du compilateur n'a pas du être revue pour les Mac Intel.

Je vais quand même continuer de voir mais bon... Dis-moi si tu trouves quelque chose (car il va encore être impossible à finir dans les temps ce projet ).


----------



## Ynnead (24 Janvier 2007)

La version 3.3 de gcc est &#224; utiliser pour compiler la classe OCCI (l'interface avec Oracle), mais pour des sources n'utilisant que Cgicc, la derni&#232;re version de g++ (4.0 &#224; l'IUT, comme sur les notres) suffit &#224; compiler avec la ligne toute b&#234;te que j'ai cit&#233;e plus haut (j'ai encore test&#233; tout &#224; l'heure avant de partir).
Je commence &#224; croire que &#231;a va &#234;tre dur de porter toutes ces vieilles librairies chez nous.
De toutes fa&#231;ons, selon JM "si &#231;a marche pas c'est pas normal parce que normalement &#231;a fonctionne". 

* sigh *


----------

