温馨提示×

linux c++配置如何写脚本

小樊
46
2026-10-02 02:57:37
栏目: 编程语言

你的问题有点宽泛,我先按**“在 Linux 下用 C++ 项目,如何写构建/配置脚本”来理解。下面从常见的几种方式**给你一个清晰路线图,你可以按项目复杂度选。


一、最基础:直接用 g++ 写 shell 脚本

适合:单文件 / 小项目

示例:build.sh

#!/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

二、Makefile(最常用、最经典)

适合:中小型 C++ 项目

示例 Makefile

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(强烈推荐)

适合:中大型项目 / 跨平台

示例 CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(MyApp)

set(CMAKE_CXX_STANDARD 17)

add_executable(app
    main.cpp
    utils.cpp
)

构建脚本 build.sh

#!/bin/bash
mkdir -p build
cd build
cmake ..
make

使用:

./build.sh
./build/app

四、自动配置脚本(类似 ./configure)

适合:需要检测环境

示例 configure.sh

#!/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"

五、进阶(可选)

  • Bazel / Meson:大型项目
  • vcpkg + CMake:依赖管理
  • CI 脚本(GitHub Actions / GitLab CI)

你可以告诉我:

  1. 是 单文件还是多文件项目?
  2. 想用 Make / CMake / 纯脚本?
  3. 是否需要 自动检测编译器或库?

我可以直接帮你写一个可运行的完整脚本。

0 踩