1. 工程目录结构如下:2. 根目录下build.sh文件内容如下#!/bin/bash # 颜色输出 RED\033[0;31m GREEN\033[0;32m YELLOW\033[1;33m BLUE\033[0;34m NC\033[0m ROOT_DIR$(pwd) OUT_DIR${ROOT_DIR}/out/ BUILD_DIR${ROOT_DIR}/build if [ $1 clean ]; then echo -e ${BLUE}clean all, rm -rf build; rm -rf out${NC} rm -rf ${BUILD_DIR} rm -rf ${OUT_DIR} fi if [ ! -d ${BUILD_DIR} ]; then echo build dir ${BUILD_DIR} not exist, need create ! mkdir -p ${BUILD_DIR} fi if [ ! -d ${OUT_DIR} ]; then echo out dir ${OUT_DIR} not exist, need create ! mkdir -p ${OUT_DIR} fi cd ${BUILD_DIR} cmake .. make make install echo $(date) ${OUT_DIR}/.build_time echo -e ${GREEN}build success!${NC}3. 根目录下的CMakeLists.txt文件内容如下:cmake_minimum_required(VERSION 3.10) project(MyProject VERSION 1.0.0) # 设置C标准 set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) # 设置安装前缀out目录 set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/out) message(STATUS Install prefix: ${CMAKE_INSTALL_PREFIX}) # 调试信息 # 添加子目录 add_subdirectory(app) add_subdirectory(tools)4. app目录下的CMakeLists.txt文件内容如下set(APP_TARGET app) set(APP_SRC main.c) add_executable(${APP_TARGET} ${APP_SRC}) install(TARGETS ${APP_TARGET} RUNTIME DESTINATION bin)5. tools目录下的CMakeLists.txt文件内容如下:add_subdirectory(test)6. tools/test目录下的CMakeLists.txt文件内容如下:set(TEST_TARGET test) set(TEST_SRC main.c) add_executable(${TEST_TARGET} ${TEST_SRC}) # 关键必须添加 install 命令 install(TARGETS ${TEST_TARGET} RUNTIME DESTINATION bin )