こんにちは私は私のC++プロジェクトを構築しようとしています。私は現在、作成したい.oファイルのすべての名前をリストするmakefileを持っています。それから私はディレクトリに接頭辞を付けてコンパイルするようにします。最後に、各オブジェクトファイルの作成とそれらのオブジェクトファイルからの実行ファイルの作成を処理する2つの基本規則があります。何らかの理由で、makeはパターンを認識していません。パターンに基づいてオブジェクトファイルを作成するルールはありません
make: *** No rule to make target
/home/epi/jfrye_xilinx/Cosimulation/Adder_PL/obj/zynq_demo.o', needed by
/home/epi/jfrye_xilinx/Cosimulation/Adder_PL/bin/zynq_demo'. Stop.
第四ルールはzynq_demo.o正しいの世話をする必要があります。ここでは、メイクファイル
CXX=g++
SRC_DIR=/home/epi/jfrye_xilinx/Cosimulation/SystemC/Xilinx/lib
INC_DIR=-I/home/epi/jfrye_xilinx/Cosimulation/SystemC/Xilinx/include
INC_DIR += -I/home/epi/jfrye_xilinx/SystemC/systemc-2.3.2/include
LIB_DIR=-L/home/epi/jfrye_xilinx/SystemC/system-2.3.2/lib-linux64
LIB_TAGS=-lsystemc
OBJ_DIR=/home/epi/jfrye_xilinx/Cosimulation/Adder_PL/obj
ZYNQ_DEMO=/home/epi/jfrye_xilinx/Cosimulation/Adder_PL/bin/zynq_demo
ZYNQMP_DEMO=/home/epi/jfrye_xilinx/Cosimulation/Adder_PL/bin/zynqmp_demo
OBJS+ = memory.o trace.o debugdev.o demo-dma.o xilinx-zynq.o xilinx-zynqmp.o
OBJS += safeio.o remote-port-proto.o remote-port-sk.o remote-port-tlm.o
OBJS += remote-port-tlm-memory-master.o remote-port-tlm-memory-slave.o
OBJS += remote-port-tlm-wires.o
_ZYNQ_OBJS=zynq_demo.o
_ZYNQMP_OBJS=zynqmp_demo.o
_ZYNQ_OBJS += $(OBJS)
_ZYNQMP_OBJS += $(OBJS)
ZYNQ_OBJS=$(addprefix $(OBJ_DIR)/, $(_ZYNQ_OBJS))
ZYNPMP_OBJS=$(addprefix $(OBJDIR)/, $(_ZYNQMP_OBJS))
$(info $(ZYNQ_OBJS))
all: $(ZYNQ_DEMO) $(ZYNQMP_DEMO)
$(ZYNQ_DEMO): $(ZYNQ_OBJS)
$(ZYNQMP_DEMO): $(ZYNQMP_OBJS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cc
$(CXX) $(INC_DIR) $(LIB_DIR) $(LIB_TAGS) -c -o [email protected] $<
は、私はエラーを取得しています。オブジェクトファイルを構築するために使用できるルールが認識されないのはなぜですか?
より簡単な方法は '$(vpath)'を使い、ソースディレクトリを明示的に指定しないことです。 – user0042
ソースディレクトリ '/ home/epi/jfrye_xilinx/Cosimulation/SystemC/Xilinx/lib'に対応する.ccファイルがありますか? –
いいえ、それが問題でした。私はそれがリストに目標ファイル名を見つけることができたとしても規則がないと不平を言うことに気付かなかった –