IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XCode Discussion :

Architecture armv6 armv7 fftw3


Sujet :

XCode

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut Architecture armv6 armv7 fftw3
    Bonjour,

    J'ai installé fftw3 avec fink sur un mac et il est compilé pour l'architecture i386.
    J'aimerai l'utiliser sur iPhone donc pour une architecture armv6 armv7. Comment compiler cette library pour l'architecture voulue ?

    Merci pour vos réponses

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Re-bonjour

    J'ai finalement compilé la library avec ./configure make et make install. La library a été compilée pour i386 et j'ai exécuté un script trouvé sur Internet qui m'a recompilé la library pour armv6. J'ai maintenant :
    libfftw3.a (for architecture arm): current ar archive random library
    libfftw3.a (for architecture i386): current ar archive random library

    J'ai ajouté le chemin de cette library dans Library Search Paths et Header Search Paths dans mon projet sous XCode.

    Mais le problème persiste. J'ai toujours des choses comme :
    Undefined symbols for architecture armv7:
    "_fftwf_malloc"

    Je n'arrive pas à voir pourquoi ça me met toujours cette erreur ...

    Si quelqu'un a un idée ?

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Citation Envoyé par MissTitou Voir le message
    Re-bonjour

    J'ai finalement compilé la library avec ./configure make et make install. La library a été compilée pour i386 et j'ai exécuté un script trouvé sur Internet qui m'a recompilé la library pour armv6. J'ai maintenant :
    libfftw3.a (for architecture arm): current ar archive random library
    libfftw3.a (for architecture i386): current ar archive random library

    J'ai ajouté le chemin de cette library dans Library Search Paths et Header Search Paths dans mon projet sous XCode.

    Mais le problème persiste. J'ai toujours des choses comme :
    Undefined symbols for architecture armv7:
    "_fftwf_malloc"

    Je n'arrive pas à voir pourquoi ça me met toujours cette erreur ...

    Si quelqu'un a un idée ?
    parce que vous avez créer un projet mixte arm6/arm7 sous XCode et que la librairie est compilée arm6/i386.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Et dans ce cas, quelle est la solution ?
    Faire un projet armv6/i386 ou recompiler la library pour armv6/armv7 ?

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Citation Envoyé par MissTitou Voir le message
    Et dans ce cas, quelle est la solution ?
    Faire un projet armv6/i386 ou recompiler la library pour armv6/armv7 ?
    recompiler la library pour armv6/armv7

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Je te remercie pour ta réponse, mais j'ai pas encore réussi à compiler la library pour armv6/armv7 ...

    Je me heurte maintenant à un autre problème. Je réutilise des fichiers sources qui vont venir remplacer la fftw3.
    Le problème c'est qu'il me dit :
    "Undefined symbols for architecture armv7:
    "maFonction()", referenced from: ..."

    Alors que je ne vois pas où peut être le problème, vu que j'ai juste ajouté des fichiers C, C++ dans mon projet et je n'utilise aucune library autre que celles proposées dans les framework d'XCode.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Je viens de résoudre mon problème.
    En fait, j'appelais des fonctions dans un fichier C à partir d'un fichier .mm
    J'ai modifié les extensions .c des fichiers concernés en .cpp et ça marche nickel.
    J'en conclue donc qu'il faut faire une couche pour pouvoir garder les fichiers en .c ?

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Citation Envoyé par MissTitou Voir le message
    Bonjour,

    Je viens de résoudre mon problème.
    En fait, j'appelais des fonctions dans un fichier C à partir d'un fichier .mm
    J'ai modifié les extensions .c des fichiers concernés en .cpp et ça marche nickel.
    J'en conclue donc qu'il faut faire une couche pour pouvoir garder les fichiers en .c ?
    non : mais il faut que le header contenant les définitions des fonctions C contienne une déclaration
    extern "C" autour des déclarations de fonctions, sinon les noms de fonctions C sont manglés par le compilateur C++ d'où l'erreur de link.
    En général on fait quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    void myFunction();
    
    #ifdef __cplusplus
    }
    #endif
    pour que le header soit compatible avec les 2 compilations.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    C'est bon, ça marche nickel avec ça.
    Je te remercie pour tes réponses !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Objective-C] Undefined symbols for architecture armv7
    Par ch0c4 dans le forum Objective-C
    Réponses: 10
    Dernier message: 19/02/2013, 11h10
  2. Réponses: 2
    Dernier message: 24/05/2011, 16h03
  3. [Architecture] Interface entre C++ & Java
    Par yanis97 dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 13/07/2004, 15h46
  4. architecture distribuée débutant
    Par jmt2 dans le forum CORBA
    Réponses: 2
    Dernier message: 13/03/2003, 12h52
  5. architecture
    Par pons dans le forum CORBA
    Réponses: 3
    Dernier message: 11/06/2002, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo