Bonjour @ tous, et bonne année !
bon, mon cas en gros :
J'ai un PC de dev sous Kubuntu : je code du C/C++ avec Code::Block.
Je fais des programmes pour une cible embarquée x86 (sans FPU) : CPU x86-SX quoi ... ( le FPU est émulé dans mon kernel )
Sur ma cible, j'ai 2 ou 3 sources C/C++ de test dont le tout nouveau "Hello.c" :
J'ai également le bin qui va avec, et ce dernier fonctionne sur ma cible ... mais, si je prends ce fichier source, et que je le compile via C:B sur ma station, la complie passe OK, le link aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include "stdio.h" int main() { printf("Hello world !\n"); return 1; }
ldd me donne :
Mais si je choppe ces fichiers sur mon PC, et que je les place sur ma cible, j'ai droit à un "illegal instruction" ... j'en deduits donc que les libs sont optimisées pour mon CPU tout neuf, mais pas pour ce bon vieux x86... ( certains dossiers indiquent i686 ... donc pas du x86 ... )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 linux-gate.so.1 => (0xb7f11000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7df5000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7dcf000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7dc0000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c62000) /lib/ld-linux.so.2 (0xb7ef7000)
D'ou mes questions :
1) Est ce que j'ai bien saisi ce qui se passe ?
( oui, je suis un peu noob dans le dev Linux !!! ... j'ai compilé mon premier kernel il y a 2 jours )
2) Comment trouver les bonnes versions des lib dont j'aurai besoin sur ma cible ?
Question bonus :
3) Vous savez comment avoir ces foutus ESPACES dans C::B ??!!!
( j'ai trouvé 2 ou 3 trucs sur le net, mais rien de clair ... )
Ou à défaut : un autre IDE simple, je vais faire un petit soft en C qui utilisera juste le framebuffer ... gcc+vi me suffirait presque, mais un peu de tendresse ne fait pas de mal ...
Mais c'est surtout les points 1 & 2 qui sont importants !!!
Voilà, merci d'avoir lu ma prose, et MEGA merci pour les réponses
@+
Seb.
Partager