# \[c++/g++/stlport\] problèmes de link

**URL:** <https://www.debian-fr.org/t/c-g-stlport-problemes-de-link/5754>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 3:25 UTC](https://www.debian-fr.org/t/c-g-stlport-problemes-de-link/5754 "2016-02-20T15:25:05Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 3:25 UTC](https://www.debian-fr.org/t/c-g-stlport-problemes-de-link/5754/1 "2016-02-20T15:25:05Z")

</div>

Salut,

je travail avec un AMD64x2 avec Eclipse 3.2.1 CDT pour c++, qui lance g++4.1 sur du code en C++. le tout sous debian Etch kernel 2.6.18-7… avec une dizaine de package venant de Sid… mais a priori complétement indépendant à mon problème.

je fais face à un problème de link… je pointe le problème avec cet exemple on ne peut plus court :

[quote]  
#include   
int main(int a)  
{  
 std::cerr \<\< "Just a Test ";  
return 0;  
}; [/quote]

le link plante sur le std::cerr  
g++ qui me dit ( par l’intermediaire de la console de Eclipse 3.2.1 CDT ) :

> [@](#):
>
> \*\*\*\* Build of configuration Debug for project DraftTest \*\*\*\*
> 
> make -k all  
> Building target: DraftTest  
> Invoking: GCC C++ Linker  
> g++ -o"DraftTest" ./main.o -lstlport  
> ./main.o: In function `main': [color=red]../main.cpp:11: undefined reference to`stlpmtx\_std::cerr’[/color]  
> ./main.o: In function `stlpmtx_std::ios_base::_M_check_exception_mask()': /usr/include/stlport/stl/_ios_base.h:202: undefined reference to`stlpmtx\_std::ios\_base::\_M\_throw\_failure()’  
> collect2: ld returned 1 exit status  
> make: \*\*\* [DraftTest] Error 1  
> make: Target `all’ not remade because of errors.  
> Build complete for project DraftTest

j’ai le même type de bug avec des throw try et catch.  
et je suis bel et bien incapable de me dépatouiller avec le message d’erreur de link sur la stlport.

j’ai suivi une piste, sur internet, j’ai trouvé un post d’un gars qui avait un problème similaire pour compiler un “HelloWorld” avec g++ et stlport, mais sous win32. Il s’en tirait finalement avec une compilation prenant en compte le flag -mtheads

mais cela ne semble pas etre reconnu sur ma plateforme :

> [@](#):
>
> make -k all  
> Building file: …/main.cpp  
> Invoking: GCC C++ Compiler  
> g++ -I/usr/include/stlport -O0 -g3 -Wall -c -fmessage-length=0 -mthreads -MMD -MP -MF"main.d" -MT"main.d" -o"main.o" “…/main.cpp”  
> cc1plus: error: unrecognized command line option “-mthreads”  
> make: \*\*\* [main.o] Error 1  
> make: Target `all’ not remade because of errors.  
> Build complete for project DraftTest

en verbose, j’ai le détail du problème :

> [@](#):
>
> …  
> Thread model: posix  
> gcc version 4.1.2 20061028 (prerelease) (Debian 4.1.1-19)  
> /usr/lib/gcc/x86\_64-linux-gnu/4.1.2/cc1plus -quiet -v -I/usr/include/stlport -MMD main.dmain.o -MFmain.d -MP -MTmain.d -MQ main.o -dD -D\_GNU\_SOURCE …/main.cpp -quiet -dumpbase main.cpp -mthreads -mtune=k8 -auxbase-strip main.o -g3 -O0 -Wall -version -fmessage-length=0 -o /tmp/ccGzhkTK.s  
> cc1plus: error: unrecognized command line option “-mthreads”  
> ignoring nonexistent directory “/usr/local/include/x86\_64-linux-gnu”  
> ignoring nonexistent directory “/usr/lib/gcc/x86\_64-linux-gnu/4.1.2/…/…/…/…/x86\_64-linux-gnu/include”  
> ignoring nonexistent directory “/usr/include/x86\_64-linux-gnu”  
> …

je ne sais pas si le problème vient de la libraire x86\_64 qui semble inexistante.  
je ne sais pas à quoi elle correspond.

si je mets le flag -nodefaultlib, j’ai aussi le rapport sur x86\_64 non existant.

une idée ?

pour la librairie stlport5.1, j’ai juste installé le package debian.  
et la libraire est sous forme libstlport.so

j’ai pas trop de connaissance sur les threads POSIX et l’implication que ça a sur les compilations de code C++… aussi je me demande le pourquoi de l’intervention de cette libraire x64\_64…

mon seul package qui cause de l’archi x86\_64 c’est kernel-image-2.6-amd64-generic.  
j’ai effectivement, recompilé mon kernel depuis… mais il me semble bien avoir indiqué de compiler avec le module AMD64…

je suis perdu…

😊

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 3:25 UTC](https://www.debian-fr.org/t/c-g-stlport-problemes-de-link/5754/2 "2016-02-20T15:25:07Z")

</div>

tu as fait un aptitude search 86\_64 pour voir s’il n’y a pas plutot des libs à rajouter (ou des composants “-dev”)

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 3:25 UTC](https://www.debian-fr.org/t/c-g-stlport-problemes-de-link/5754/3 "2016-02-20T15:25:08Z")

</div>

jbah en fait j’ai bien cherché sur ma bécane, et elle est bien présente la libraire x86\_64-gnu  
et elle est bien dans le chemin des includes…

boh pour l’instant je suis retourné sur l’utilisation avec la stl du c++ de base…  
faut que j’avance un peu… mais bon ça serait cool que je puisse compiler avec stlport5.1

je mettrais du nouveau ici… si jamais j’ai du nouveau.
