0

私が投稿した以下のmakeファイルはcpp用で、同じMakefileで2つのcファイルをコンパイルし、それをcppオブジェクトファイルとリンクしたいと考えています。どうすればそれを行うことができますか 構築するためのガイドをお願いします 以下の例のmakeファイルで: 2つのcファイルを追加したい file1.c file1.h、file2.c、およびfile2.h

これを以下の Makefile に追加するにはどうすればよいですか。

メイクファイル

EXENAME = demo

CPPS += \
main.cpp\
features.cpp

CPP_DEPS += \
main.d\
features.d

OBJS += \
main.o\
features.o

INCLUDEPATH = -I.
COMPILEOPTS = -O3 -c -fPIC -MP -w -MMD -c $(INCLUDEPATH)
RPATHOPTS = -Wl,-rpath="."
LIBOPTS = -L. -lEIddk2000\
    -lpthread
LINKOPTS = -Wl -o "$(EXENAME)"

############################################################
## TOOLCHAIN PATH CONFIGURATION ############################
## User should modify here  ############################

TOOLCHAIN_GCC = /home/root/Desktop/angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc

TOOLCHAIN_LIBS += -L/home/root/Desktop/arm-compiler/angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/lib

## TOOLCHAIN PATH CONFIGURATION END ########################
############################################################
all: $(EXENAME)
$(EXENAME): $(OBJS) 
    @echo "Linking..."
    $(TOOLCHAIN_GCC) $(TOOLCHAIN_LIBS) $(LINKOPTS) $(OBJS) $(LIBOPTS) $(RPATHOPTS)
    @echo "Done."
    @echo ""

%.o : %.cpp
    $(TOOLCHAIN_GCC) $(COMPILEOPTS) $<
clean : 

rm -rf $(OBJS) $(CPP_DEPS) $(EXENAME)

4

1 に答える 1

0

コンパイル部分のみの場合、Makefile で次の変更を使用できます

  file%.o:file%.c file%.h
           $(TOOLCHAIN_GCC) $(COMPILEOPTS) $<

この後、オブジェクト ファイルのリンクを変更して、最終的な実行可能ファイルを生成する必要があります。

于 2013-10-28T20:29:41.193 に答える