你的问题有点宽泛,我先按**“在 Linux 下用 C++ 项目,如何写构建/配置脚本”来理解。下面从常见的几种方式**给你一个清晰路线图,你可以按项目复杂度选。
适合:单文件 / 小项目
#!/bin/bash
g++ -std=c++17 -O2 main.cpp -o app
if [ $? -eq 0 ]; then
echo "Build success"
./app
else
echo "Build failed"
fi
使用:
chmod +x build.sh
./build.sh
适合:中小型 C++ 项目
CXX = g++
CXXFLAGS = -std=c++17 -Wall -O2
TARGET = app
SRCS = main.cpp utils.cpp
OBJS = $(SRCS:.cpp=.o)
$(TARGET): $(OBJS)
$(CXX) $(OBJS) -o $(TARGET)
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
使用:
make
./app
make clean
适合:中大型项目 / 跨平台
cmake_minimum_required(VERSION 3.10)
project(MyApp)
set(CMAKE_CXX_STANDARD 17)
add_executable(app
main.cpp
utils.cpp
)
#!/bin/bash
mkdir -p build
cd build
cmake ..
make
使用:
./build.sh
./build/app
适合:需要检测环境
#!/bin/bash
echo "Checking g++..."
which g++ || { echo "g++ not found"; exit 1; }
echo "Generating Makefile..."
cat > Makefile <<EOF
CXX = g++
CXXFLAGS = -std=c++17
all: app
app: main.cpp
\$(CXX) \$(CXXFLAGS) main.cpp -o app
clean:
rm -f app
EOF
echo "Configure done"
我可以直接帮你写一个可运行的完整脚本。