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 :

Makefile Code::Blocks compilation SDK ARDRONE 2.0


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 Makefile Code::Blocks compilation SDK ARDRONE 2.0
    Bonjour,

    J'aimerais compiler le SDK ARDrone 2.0 sur Code::Blocks à l'aide du makefile fournit dans cette lib. 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 principal. (il se trouve dans Exemple / Linux) et voici son contenu :
    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)
    J'ai mis "no" à USE_LINUX de la première ligne, car la première ligne concerne la compilation de la librairie et je les déjà compilé dans le terminal avec une commande make pour éviter de tout recompiler à chaque fois sous Code::Blocks.

    Le programme que je souhaite personnalisé se trouve dans le dossier Exemple / Linux / sdk_demo. Il contient le makefile suivant :
    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
    Quand je compile sous Code::Blocks en spécifiant le makefile principal (Exemple / Linux), j'ai l'output suivant :
    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
    Je m'y connais très peu en Makefile et vu l'erreur, il faut je pense modifier le makefile pour spécifier une règle pour Debug ... Quelqu'un pour m'aider ?

    PS : j'arrive parfaitement à tout compiler sous le terminal, mais j'aimerais préférentiellement travailler sous un IDE étant donné que je vais devoir développer pas mal de code supplémentaire ...

    Merci d'avance !

  2. #2
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 1
    Points : 4
    Points
    4
    Par défaut
    Passe à mon bureau!

Discussions similaires

  1. Compilation ARDrone SDK avec Code::Blocks
    Par ABouras dans le forum Linux
    Réponses: 5
    Dernier message: 06/12/2012, 14h23
  2. Compiler un makefile sous Code::Blocks
    Par Amlys.p dans le forum C
    Réponses: 1
    Dernier message: 23/04/2012, 19h04
  3. [code block] Compiler avec Visual c++ 2008, ça bugue
    Par Invité dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 18/12/2011, 21h04
  4. code::blocks, fbx sdk, windows
    Par Invité dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 29/07/2011, 10h37
  5. code::blocks vs compilation avec Makefile (qmake)
    Par ostralo dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 08/04/2008, 13h39

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