Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/08/2010, à 14:30

Efhache84

cross compiler une librairie avec configure make make install

salut à tous,

j'aimerais cross-compiller une librairie téléchargée  (https://launchpad.net/libmodbus/trunk/2.0.3)

cross compiler depuis ma ubuntu vers une processeur arm.


Je peux le faire depuis un programme que j'ai pondu moi même, grâce à une modification du path puis en utilisant le bon compîlateur.

Par contre lorsque je veux compiler la librairie ci-dessus je dois utiliser configure, make, make install


bon dans le cas d'une cross compilation, je présume que je dois modifier qqch dans le configure, mais quoi? qqch du genre pour lui dire utiliser arm-linux-gcc  au lieu de gcc

Le make à priori pas de changement il exécutera ce qui résulte de configure


et le make install, là par contre, dois-je le faire?  sur ma machien hôte ça n'a pas de sens, non?



EDIT : l'option host semble suffire en réalité... par contre le make déconne par la suite... encore de l'apprentissage linux à faire big_smile

Dernière modification par Efhache84 (Le 27/08/2010, à 14:45)


Aspire 5633 WLMi - Lucid Lynx 10.04 en 64 bits

Hors ligne

#2 Le 27/08/2010, à 15:01

eiger

Re : cross compiler une librairie avec configure make make install

Ce n'est pas le "host" que tu dois spécifier mais le "target".

./configure --target=arm-linux

Hors ligne

#3 Le 30/08/2010, à 15:04

Efhache84

Re : cross compiler une librairie avec configure make make install

je veux bien, mais lorsque je regarde le help du configure, je vois pourtant ceci :

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

l'option host semble donc bien avoir pour but de faire tourner la librairie sur un autre système que celui sur lequel je compile.

Et lorsque j'utilise target, j'obtiens un fichier de type i386 là où l'option host me fournit un type arm   (commande file)
Par contre dans le dernier cas, lorsque je veux compiler mon soft, j'obtiens une erreur de link :

/home/user/ARMLinux/buildroot/build_arm/staging_dir/lib/gcc/arm-linux-uclibc/4.1.2/../../../../arm-linux-uclibc/lib/libmodbus.so: undefined reference to `rpl_malloc'


Aspire 5633 WLMi - Lucid Lynx 10.04 en 64 bits

Hors ligne

#4 Le 31/08/2010, à 01:17

eiger

Re : cross compiler une librairie avec configure make make install

Oh là, je n'avais pas les yeux en face des trous moi.
Désolé, j'avais lu ton message de travers.
L'option host est la bonne.

Pour ton erreur, tu peux essayer ceci:

export ac_cv_func_malloc_0_nonnull=yes
./configure --host=arm-linux
make

Ou encore tu peux supprimer la ligne AC_FUNC_MALLOC de configure.ac avant de lancer le configure.

Note : dans la version 2.1.O, le test sur malloc a été retiré, ça ne devrait plus poser de problème.

La macro AC_FUNC_MALLOC s'attend à trouver un système avec une GLIBC, où malloc est redéfini en rpl_malloc. Comme on utilise souvent d'autres libc en embarqué, ce test pose souvent problème.

Dernière modification par eiger (Le 31/08/2010, à 01:18)

Hors ligne

#5 Le 31/08/2010, à 09:35

Efhache84

Re : cross compiler une librairie avec configure make make install

bête quesiton mais en forçant la variable avec malloc, puis en faisait le configure, cette variable ne risque-t-elle pas d'être réassignée ?

parceque si dans le configure un test fait que var=1, le fait de faire


var=0
configure


revient finalment au même à

Var=0
...
var=1


non ?


EDIT : ok merci  on ça compile sans plus d'erreur big_smile, reste plus qu'à terminer le soft pour le tester

Dernière modification par Efhache84 (Le 31/08/2010, à 09:39)


Aspire 5633 WLMi - Lucid Lynx 10.04 en 64 bits

Hors ligne

#6 Le 22/03/2011, à 17:25

jeremy02700

Re : cross compiler une librairie avec configure make make install

Bonjour,

Je dispose d' Ubuntu 10.10 et je souhaite cross-compiler la librairie libmodbus 2.9.3 pour cible ARM (samsung s3c2440 / mini2440 board) sur laquelle est installé emDebian. Je dispose également du cross-compilateur pour arm "arm-none-linux-gnueabi-".

Ma question est de savoir si la procédure suivante est correcte :

./configure --host arm-linux
make
make install

Cependant, les variables CC, CFLAGS, CXXFLAGS, ... doivent-elles faire l'objet d'une initialisation particulière ?

En vous remerçiant !!

Jérémy

Hors ligne