Compiler pour x86_64 à partir de i386 - Linux et OS Alternatifs
Marsh Posté le 14-09-2005 à 16:26:18
ReplyMarsh Posté le 14-09-2005 à 16:36:44
grojulius a écrit : x86_64-pc-linux-gnu-gcc ou x86_64-pc-linux-gnu-gcc64 ? |
|
Marsh Posté le 14-09-2005 à 19:15:53
tu as bien des libs 64 bits ?
Marsh Posté le 15-09-2005 à 10:00:43
Oui, j'ai des trucs :
|
J'ai aussi des trucs dans /opt/xcompile/gcc-3.4.4-glibc-2.3.2/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu (super les noms à rallonge ) : ya des binaires de gcc, d'autres libs (dans lib/ et lib64/), etc. Elles ont un nom un peu plus parlant qu'au dessus.
En fait, ça ressemble plus à un problème de librairies non trouvée qu'autre chose Je vais voir dans la doc de crosstool voir si je trouve un truc ...
Marsh Posté le 15-09-2005 à 10:15:03
AHAH, la compilation d'un .c marche
|
Par contre, les fichiers C++, c'est pas ça encore
Marsh Posté le 15-09-2005 à 10:19:34
Pourquoi je lançais gcc pour compiler du C++ ?
|
Ca marche (reste à voir si je pourrais l'executer sur du 64bits, mais bon )
Marsh Posté le 15-09-2005 à 13:49:22
si tu me l'envoies, je veux bien essayer
Marsh Posté le 15-09-2005 à 13:50:48
Merci, mais ça attendra que je testes sur ma machine un soir
Marsh Posté le 14-09-2005 à 10:13:00
Salut,
j'aimerais pouvoir compiler des programmes pour l'architecture x86_64, à partir d'un Pentium3 (donc i386). Les sources des programmes sont du C et C++.
D'après ce que j'ai pu lire, ça se résume pas à passer un flag à gcc (mayrde ). J'ai utiliser crosstool ( http://kegel.com/crosstool/ ) pour générer un cross-compilateur, mais ça marche pas des masses J'ai du louper un truc :
jon@ptrois:~$ x86_64-unknown-linux-gnu-gcc -o test test.cc
/tmp/cc7nSYfc.o(.text+0x19): In function `std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& )':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const'
/tmp/cc7nSYfc.o(.text+0x70): In function `std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& )':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const'
/tmp/cc7nSYfc.o(.text+0xb3): In function `std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& )':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const'
/tmp/cc7nSYfc.o(.text+0xe3): In function `std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& )':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const'
/tmp/cc7nSYfc.o(.text+0x124): In function `main':
: undefined reference to `std::cout'
/tmp/cc7nSYfc.o(.text+0x129): In function `main':
: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/cc7nSYfc.o(.text+0x131): In function `main':
: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >& )'
/tmp/cc7nSYfc.o(.text+0x136): In function `main':
: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >& ))'
/tmp/cc7nSYfc.o(.text+0x165): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `std::ios_base::Init::Init()'
/tmp/cc7nSYfc.o(.text+0x192): In function `__tcf_0':
: undefined reference to `std::ios_base::Init::~Init()'
/tmp/cc7nSYfc.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
jon@ptrois:~$
jon@ptrois:~$
jon@ptrois:~$ which x86_64-unknown-linux-gnu-gcc
/opt/xcompile/gcc-3.4.4-glibc-2.3.2/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-gcc
jon@ptrois:~$
jon@ptrois:~$
jon@ptrois:~$ x86_64-unknown-linux-gnu-gcc -v
Reading specs from /opt/xcompile/gcc-3.4.4-glibc-2.3.2/x86_64-unknown-linux-gnu/lib/gcc/x86_64-unknown-linux-gnu/3.4.4/specs
Configured with: /usr/local/src/crosstool-0.38/build/x86_64-unknown-linux-gnu/gcc-3.4.4-glibc-2.3.2/gcc-3.4.4/configure --target=x86_64-unknown-linux-gnu --host=i686-host_pc-linux-gnu --prefix=/opt/xcompile/gcc-3.4.4-glibc-2.3.2/x86_64-unknown-linux-gnu --disable-multilib --with-sysroot=/opt/xcompile/gcc-3.4.4-glibc-2.3.2/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root --with-local-prefix=/opt/xcompile/gcc-3.4.4-glibc-2.3.2/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.4
jon@ptrois:~$
Avec le code qui tue :
Voilà, si quelqu'un pouvait me renseigner sur ce que j'ai louper, ça serait cool