Bonjour,
Je travaille actuellement sur un projet consistant à réaliser le portage d'une librarie graphique (MiniGUI) sur le système d'exploitation embarqué eCos
Voici déjà leur site respectifs :
www.ecos.sourceware.org
www.minigui.com
J'ai donc réalisé tout le processus de configuration et de compilation de eCos, et de miniGUI.
Je souhaite maintenant réaliser un programme (helloworld) graphique.
J'ai réalisé plusieurs tests :
- helloworld graphique sous linux (avec minigui)
- helloworld (mode texte) sur ecos.
Mon problème n'est pas lié à l'exotisme de mon système d'exploitation, mais plutôt à un problème de compilation (et surtout link) de mon progrmame helloworld pour eCos qui fait intervenir miniGUI.
Voici la commande utilisée pour la compilation :
et la commande utilisée pour le link :Code:i386-elf-gcc -g -Wall -D_ECOS -I ../ecos-pc/install/include -I /usr/local/include/ -c helloworld.c -L /opt/ecos/ecos-2.0/work/ecos-pc/install/lib -Ttarget.ld -nostdlib
Le problème est simple, puisque lors du link, j'ai une série d'erreurs : "undefined reference" pour chaque appel de fonction de miniGUI, fonctions définies dans les headers et dans le fichier libminigui.so.Code:
1
2 ld -o a.out /usr/local/lib/libminigui.so helloworld.o -lminigui -lc
En effet, lorsque je recherche les noms de fonctions non définies avec un petit grep, je constate qu'il y a bien concordance. La preuve en image.
Code:
1
2
3 ld: AVERTISSEMENT: ne peut trouver le symbole d'entrée _start; utilise par défaut 0000000008048784 /usr/local/lib/libminigui.so: référence indéfinie vers « png_set_gray_1_2_4_to_8 »
Quelqu'un a t'il qq hypothèses sur la question ?Code:
1
2
3
4
5
6 debian:/opt/ecos/ecos-2.0/work/app/minigui# grep -r png_set_gray_1_2_4_to_8 /usr/local Fichier binaire /usr/local/lib/libminigui-1.6.so.2.0.0 concorde Fichier binaire /usr/local/lib/libminigui-1.6.so.2 concorde Fichier binaire /usr/local/lib/libminigui.so concorde Fichier binaire /usr/local/lib/libminigui.a concorde
Est ce que le warning lors du link a une réelle importance ?
Est-ce qu'une solution au problème pourrait être de linker en statique ?
Si je suis pas clair, et pour plus d'infos, n'hésitez pas à me poser vos questions. Merci