如何在Makefile的这一行中指出您需要收集调试信息?

如何在Makefile的这一行中指出您需要收集调试信息?,makefile,Makefile,我想编译项目并在调试器中运行它。Makefile中有以下行: all: build_libs $(TARGET) 我可以在这行中指定gcc的-g选项吗?还是应该在别的地方 Makefile的所有内容如下所示 SDK_PATH:=$(shell pwd)/../../ARDroneLib PC_TARGET=yes USE_LINUX=yes ifdef MYKONOS include $(ARDRONE_CUSTOM_CONFIG) include $(ARDRONE_BUIL

我想编译项目并在调试器中运行它。Makefile中有以下行:

 all: build_libs $(TARGET)
我可以在这行中指定gcc的-g选项吗?还是应该在别的地方

Makefile的所有内容如下所示

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=video_opencv

SRC_DIR:=$(shell pwd)/../Sources

# Define application source files
GENERIC_BINARIES_SOURCE_DIR:=$(SRC_DIR)

GENERIC_BINARIES_COMMON_SOURCE_FILES+=\
Video/pre_stage.c\
Video/post_stage.c\
Video/display_stage.c\
image_processing.c\
controls.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_INCLUDES+=`pkg-config --cflags opencv`

GENERIC_LIB_PATHS=-L$(GENERIC_TARGET_BINARIES_DIR)
GENERIC_LIBS=-lpc_ardrone -lrt -lgtk-x11-2.0 -lcairo -lgobject-2.0 -lgdk-x11-2.0 -lm `pkg-config --libs opencv`


SDK_FLAGS+="USE_APP=yes"
SDK_FLAGS+="APP_ID=linux_video_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

如果您将
GENERIC\u CFLAGS=-g
添加到这个makefile,它应该可以工作。但是,真正的编译工作不是由这个makefile完成的,而是由子目录
$(SDK\u路径)/VP\u SDK/Build
中的makefile完成的(请注意
$(目标)
规则如何使用
-C
标志重新调用该子目录中的make)。因此,通过查看这个makefile,我们无法确切地知道需要做什么