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

Linux Discussion :

Compilation ARDrone SDK avec Code::Blocks


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Points : 25
    Points
    25
    Par défaut Compilation ARDrone SDK avec Code::Blocks
    Bonjour,

    J'aimerais compiler le SDK ARDrone 2.0 sur Code::Blocks.
    Cette librairie dispose d'un Makefile principale dans le dossier example/Linux.
    Dans Code::Blocks j'ai importé le dossier complet ARDrone_SDK_2.0 et j'ai coché
    "This is a custom makefile" dans les propriétés du projet en donnant le chemin du makefile.

    J'ai déjà compilé séparément la librairie avec le terminal et une commande make pour éviter de recompiler à chaque fois la lib dans Code::Blocks.
    Quand je lance la compilation de l'exemple dans Code::Blocks, il me sort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    -------------- Clean: Debug in ARD_Bouras_Project ---------------
     
    Error cleaning "ARD_Bouras_Project - Debug"
     
    -------------- Build: Debug in ARD_Bouras_Project ---------------
     
    Using makefile: Makefile
    Libs already extracted
    Building target static
    Architecture i686 is already built
    Creating universal static lib file from architectures i686
    Build done.
    \033[31mChecking required Ubuntu packages ...\033[0m
    ok.
    \033[32;01mBuilding ARDroneTool/Lib\033[0m
    make[5]: *** Pas de règle pour fabriquer la cible « Debug ». Arrêt.
    make[4]: *** [Debug] Erreur 2
    make[3]: *** [build_lib] Erreur 2
    make[2]: *** [Debug] Erreur 2
    make[1]: *** [build_libs] Erreur 2
    make: *** [Debug] Erreur 2
    Process terminated with status 2 (0 minutes, 0 seconds)
    0 errors, 0 warnings
    Que dois-je faire ?

    Merci beaucoup d'avance pour votre aide !

  2. #2
    Membre confirmé Avatar de saad.hessane
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 315
    Points : 496
    Points
    496
    Par défaut
    Le message d'erreur est simple à comprendre, il n'y a pas de règle pour générer "debug".
    Si tu n'es pas très à l'aise avec les Makefiles, je te conseil de faire au plus simple. Compile la bibliothèque en faisant make, ensuite copie le fichier .a générer dans le dossier des libs de Code::Blocks. Ensuite copie les headers publiques dans le dossier include de Code::Blocks.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    Bonjour et merci de répondre !!

    En effet je ne suis pas à l'aise avec les makefile mais il faut absolument que je les utilises, l'autres méthodes à échouée après 2 reprises, c'est ma dernière chance.
    Il suffit juste que j'écrive dans le makefile une règle pour Debug, c'est qu'une hitoire de nom et de chemin de sortie je pense ... Voici le makefile principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    .PHONY:
     
    all:
    	@$(MAKE) -C ../../ARDroneLib/Soft/Build USE_LINUX=no
    	@$(MAKE) -C Navigation/Build USE_LINUX=yes
    	@$(MAKE) -C sdk_demo/Build USE_LINUX=yes
    #	@$(MAKE) -C Testbenches/multiconfiguration/Build USE_LINUX=yes
    	@$(MAKE) -C Testbenches/ftp_test/Build USE_LINUX=yes
     
    $(MAKECMDGOALS):
    	@$(MAKE) -C ../../ARDroneLib/Soft/Build USE_LINUX=yes $(MAKECMDGOALS)
    	@$(MAKE) -C Navigation/Build USE_LINUX=yes $(MAKECMDGOALS)
    	@$(MAKE) -C sdk_demo/Build USE_LINUX=yes $(MAKECMDGOALS)
    #	@$(MAKE) -C Testbenches/multiconfiguration/Build USE_LINUX=yes $(MAKECMDGOALS)
    	@$(MAKE) -C Testbenches/ftp_test/Build USE_LINUX=yes $(MAKECMDGOALS)
    Le premier make est à "no" car la lib est déjà compiler. Moi ce qui m'interesse c'est l'executable du sdk_demo ! D'ailleurs voici le makefile qui se trouve dans sdk_demo/Build :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    SDK_PATH:=$(shell pwd)/../../../../ARDroneLib
    PC_TARGET=yes
    USE_LINUX=yes
     
    ifdef MYKONOS
       include $(ARDRONE_CUSTOM_CONFIG)
       include $(ARDRONE_BUILD_CONFIG)
    else
       include $(SDK_PATH)/Soft/Build/custom.makefile
       include $(SDK_PATH)/Soft/Build/config.makefile
    endif
     
    ifeq "$(RELEASE_BUILD)" "yes"
       ARDRONE_TARGET_DIR=$(shell pwd)/../../Build/Release
    else
       ARDRONE_TARGET_DIR=$(shell pwd)/../../Build/Debug
    endif
     
    TARGET=linux_sdk_demo
     
    SRC_DIR:=$(shell pwd)/../Sources
     
    # Define application source files
    GENERIC_BINARIES_SOURCE_DIR:=$(SRC_DIR)
     
    GENERIC_BINARIES_COMMON_SOURCE_FILES+=			\
       Navdata/navdata.c    \
       Video/video_stage.c
     
    GENERIC_INCLUDES+=					\
    	$(SRC_DIR) \
    	$(LIB_DIR) \
    	$(SDK_PATH)/Soft/Common \
    	$(SDK_PATH)/Soft/Lib
     
    GENERIC_TARGET_BINARIES_PREFIX=
     
    GENERIC_TARGET_BINARIES_DIR=$(ARDRONE_TARGET_DIR)
     
    GENERIC_BINARIES_SOURCE_ENTRYPOINTS+=			\
       ardrone_testing_tool.c
     
    GENERIC_INCLUDES:=$(addprefix -I,$(GENERIC_INCLUDES))
     
    GENERIC_LIB_PATHS=-L$(GENERIC_TARGET_BINARIES_DIR)
    GENERIC_LIBS=-lpc_ardrone -lgtk-x11-2.0 -lrt
     
    SDK_FLAGS+="USE_APP=yes"
    SDK_FLAGS+="APP_ID=linux_sdk_demo"
     
    export GENERIC_CFLAGS
    export GENERIC_LIBS
    export GENERIC_LIB_PATHS
    export GENERIC_INCLUDES
    export GENERIC_BINARIES_SOURCE_DIR
    export GENERIC_BINARIES_COMMON_SOURCE_FILES
    export GENERIC_TARGET_BINARIES_PREFIX
    export GENERIC_TARGET_BINARIES_DIR
    export GENERIC_BINARIES_SOURCE_ENTRYPOINTS
     
    # Bug fix ...
    export GENERIC_LIBRARY_SOURCE_DIR=$(GENERIC_BINARIES_SOURCE_DIR)
     
     
    .PHONY: $(TARGET) build_libs
     
    all: build_libs $(TARGET)
     
    $(TARGET):
    	@$(MAKE) -C $(SDK_PATH)/VP_SDK/Build $(TMP_SDK_FLAGS) $(SDK_FLAGS) $(MAKECMDGOALS) USE_LINUX=yes
    	mv $(ARDRONE_TARGET_DIR)/ardrone_testing_tool $(TARGET)
    	mv $(TARGET) $(ARDRONE_TARGET_DIR)/
     
    $(MAKECMDGOALS): build_libs
    	@$(MAKE) -C $(SDK_PATH)/VP_SDK/Build $(TMP_SDK_FLAGS) $(SDK_FLAGS) $(MAKECMDGOALS) USE_LINUX=yes
     
    build_libs:
    	@$(MAKE) -C $(SDK_PATH)/Soft/Build $(TMP_SDK_FLAGS) $(SDK_FLAGS) $(MAKECMDGOALS) USE_LINUX=yes
    Excusez-moi de la longueur du post ... :/

    Merci beaucoup d'avance pour vos réponses !

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    Je veux juste compiler le SDK ARDrone 2.0 sous Code::Blocks pour pouvoir modifier le sdk_demo par la suite ... comment dois-je m'y prendre svp ?

  5. #5
    Membre confirmé Avatar de saad.hessane
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 315
    Points : 496
    Points
    496
    Par défaut
    La règle pour Debug serait:
    Mais sincèrement c'est du bidouillage affreux. La solution je te l'ai donné dans ma précédente réponse. Tu compiles tel que les développeurs de la lib te dises de compiler, tu installes la lib dans ton EDI. Ensuite si tu veux compiler les exemples, crée un nouveau projet et importe les fichiers sources de l'exemple.
    Pour faire mieux que ça faudra se mettre à la syntaxe Makefile, qui est assez facile à apprendre d'ailleurs. Tu pourras alors créer un projet respectant à la lettre les exigences du Makefile, pour ensuite générer la lib en Debug, Release...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Points : 25
    Points
    25
    Par défaut
    Ok merci de répondre !

    J'ai réussi à compiler avant que tu me répondes, j'ai effectivement remplacer all par Release et redéfinie les commande make de Code::Blocks en écrivant le chemin en dur de $target dans les Project / Build options / "make" command.

    Voilà merci !

    PS : maintenant j'ai des erreurs de undeclared type pour une structure mais bon je pense que je vais trouver la solution tout seul ...

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

Discussions similaires

  1. compiler un programme TC avec code::blocks ou un autre compilateur
    Par acacia dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 24/01/2008, 18h07
  2. Réponses: 1
    Dernier message: 02/01/2008, 18h10
  3. [Installation DirectX]Compiler avec Code::Blocks
    Par elmodeno dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 03/11/2007, 18h01
  4. Erreur compilation avec Code Blocks
    Par Ulver dans le forum wxWidgets
    Réponses: 3
    Dernier message: 10/04/2007, 22h26
  5. [kjAPI] Compilation avec Code::Blocks
    Par ThomasCh dans le forum Moteurs 3D
    Réponses: 5
    Dernier message: 17/10/2006, 09h01

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