在一个 make 命令中制作两个程序

问题描述 投票:0回答:1

我想用 makefile 来制作我的主程序和测试程序。

我尝试运行此 make 命令,但它仅编译

library_management
:

# Compiler and flags
CXX = g++
CXXFLAGS = -std=c++11 -Iinclude

# Directories
SRC_DIR = src
INCLUDE_DIR = include
TEST_DIR = tests

# Executables
MAIN_EXEC = library_management
TEST_EXEC = library_test

# Source files
MAIN_SRC = $(SRC_DIR)/main.cpp $(SRC_DIR)/Book.cpp $(SRC_DIR)/Library.cpp
TEST_SRC = $(TEST_DIR)/LibraryTest.cpp $(SRC_DIR)/Book.cpp $(SRC_DIR)/Library.cpp

# Build main program
$(MAIN_EXEC): $(MAIN_SRC)
    $(CXX) $(CXXFLAGS) -o $(MAIN_EXEC) $(MAIN_SRC)

# Build test program
$(TEST_EXEC): $(TEST_SRC)
    $(CXX) $(CXXFLAGS) -o $(TEST_EXEC) $(TEST_SRC)

我找到了一种用其他命令制作每个项目的方法。但随后我需要运行

make
make test
命令来制作这两个项目。

# Default target: build only the main program
all: $(MAIN_EXEC)

# Build main program
$(MAIN_EXEC): $(MAIN_SRC)
    $(CXX) $(CXXFLAGS) -o $(MAIN_EXEC) $(MAIN_SRC)

# Build test program
test: $(TEST_EXEC)

$(TEST_EXEC): $(TEST_SRC)
    $(CXX) $(CXXFLAGS) -o $(TEST_EXEC) $(TEST_SRC)

是否可以选择在一个 make 命令中创建两个项目?

谢谢!

c++ makefile
1个回答
0
投票

正如 @some-programmer-dude 评论的那样,我将这两个项目添加到了 all 命令中,现在它正在制作这两个项目:

# Default target: build only the main program
all:$(MAIN_EXEC) $(TEST_EXEC)

# Build main program
$(MAIN_EXEC): $(MAIN_SRC)
    $(CXX) $(CXXFLAGS) -o $(MAIN_EXEC) $(MAIN_SRC)

# Build test program
# test: $(TEST_EXEC)

$(TEST_EXEC): $(TEST_SRC)
    $(CXX) $(CXXFLAGS) -o $(TEST_EXEC) $(TEST_SRC)
© www.soinside.com 2019 - 2024. All rights reserved.