Bonjour à tous,
J'ai une incertitude concernant le fait de compiler BOOST sur une architecture SPARC.
Bien évidement, comme tout le monde le sait
l'architecture SPARC de SUN appartient à la famille des processeurs BIG INDIAN.
Alors, ma question est la suivante :
Es-ce que cela a un impact sur le code source ? et faut-il aménager le code source en fonction de la famille sur laquelle on compile ?
Je n'arrive pas a linké mon programme avec libboost_regex-gcc-mt-1_33_1.so en version SPARC compilé avec cette ligne :
./configure --prefix=../temp/ --with-libraries=regex
ce qui me donne :
1 2 3 4 5 6
| -n Building Boost.Jam with toolset gcc...
tools/jam/src/bin.solarissparc/bjam
-n Unicode/ICU support for Boost.Regex?...
not found.
Generating Boost.Build configuration in user-config.jam...
Generating Makefile... |
ici, on voit bien qu'il détecte bien l'environnement solaris/sparc.
le g++ qui est dans mon PATH est en version 3.4.6 et la compilation de boost_regex se passe bien. Il me génère plein de .a et .so dont celle que j'ai mentionné au dessus.
J'ai essayé également avec la version 1_38_0 de BOOST mais meme si il me génère 3 fois moins de .so/.a cela abouti toujours aux mêmes erreurs..
Les erreurs :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
g++ -o appli main.o post.o -L../lib -lboost_regex-gcc34-mt-1_38
Undefined first referenced
symbol in file
std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >::pbackfail(long)../lib/libboost_regex-gcc34-mt-1_38.so
std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_M_destroy(std::allocator<wchar_t> const&)../lib/libboost_regex-gcc34-mt-1_38.so
std::locale::id::_M_id() const ../lib/libboost_regex-gcc34-mt-1_38.so
std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string(unsigned int, wchar_t, std::allocator<wchar_t> const&)../lib/libboost_regex-gcc34-mt-1_38.so
std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::compare(wchar_t const*) const../lib/libboost_regex-gcc34-mt-1_38.so
...
...
...
....
std::_Rb_tree_decrement(std::_Rb_tree_node_base*)../lib/libboost_regex-gcc34-mt-1_38.so
std::basic_ios<wchar_t, std::char_traits<wchar_t> >::clear(std::_Ios_Iostate)../lib/libboost_regex-gcc34-mt-1_38.so
std::ctype<wchar_t> const& std::use_facet<std::ctype<wchar_t> >(std::locale const&)../lib/libboost_regex-gcc34-mt-1_38.so
ld: fatal: Symbol referencing errors. No output written to appli
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `appli' |
Mon application compile et fonctionne bien dans l'environnement WINDOWS XP/cygwin x86 avec la dernière version de boost précompilé disponible (1_33_1) et également sous freeBSD boost (1_37_0) toujours x86.
Je précise que je suis dans un environnement SOLARIS 5.8 et que je n'ai pas les droits d'installé des binaires précompilés mais si vous me dîtes que c'est le seul moyen alors...
Voila, Merci par avance pour vos lumières.
Partager