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 :
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.
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 programme que je souhaite personnalisé se trouve dans le dossier Exemple / Linux / sdk_demo. Il contient le makefile suivant :
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
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
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 ?
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
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 !
Partager