在我的项目中,我有一个类似于这样的makefile:
这让我能够运行
如何设置CMakeLists文件以获得相同方便的构建系统?
CXX = clang++
CFLAGS = -std=c++11
COMMON_SOURCES = file1.cpp file2.cpp
TARGET_SOURCES = main.cpp
TEST_SOURCES = run_tests.cpp test_file1.cpp test_file2.cpp
COMMON_OBJECTS = $(COMMON_SOURCES:.c=.o)
TARGET_OBJECTS = $(TARGET_SOURCES:.c=.o)
TEST_OBJECTS = $(TEST_SOURCES:.c=.o)
EXECUTABLE = build/application
TEST_EXECUTABLE = build/tests
.PHONY: all target tests
all: target tests
target: $(EXECUTABLE)
tests: $(TEST_EXECUTABLE)
clean:
rm build/tests & rm build/application &
$(EXECUTABLE): $(COMMON_OBJECTS) $(TARGET_OBJECTS)
$(CXX) $(CFLAGS) $(LDFLAGS) $^ -o $@
$(TEST_EXECUTABLE): $(COMMON_OBJECTS) $(TEST_OBJECTS)
$(CXX) $(CFLAGS) $(LDFLAGS) $^ -o $@
.c.o:
$(CXX) $(CFLAGS) $< -o $@
这让我能够运行
make tests
或make target
,然后它将构建相应的可执行文件。如何设置CMakeLists文件以获得相同方便的构建系统?
add_executable called with incorrect number of arguments
可能是我不知道的基本步骤?我对CMake的了解非常有限。 - Anonymous Entity