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 !