news 2026/4/30 6:57:30

Linux下cmake构建方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux下cmake构建方法

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 )
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 6:46:24

ESXi安装提示“No Network Card Found”?2招快速解决,新手也能上手

很多运维小伙伴在安装ESXi主机时,常会遇到“NO Network Card Found”(未检测到网卡)的报错,导致安装无法继续,十分棘手。其实这个问题的核心原因很简单:ESXi官方镜像自带的网卡驱动有限,无法识别…

作者头像 李华
网站建设 2026/4/30 6:44:08

企业文档工具选型指南:2026年主流产品对比分析

一、选型之前,先想清楚三个问题企业选文档工具,最怕的不是"功能不够用",而是"选错了方向"。在对比具体产品之前,先问自己三个问题:核心需求是什么? 高频协作共创,还是知识沉…

作者头像 李华
网站建设 2026/4/30 6:32:48

终极卡牌设计神器:CardEditor让你的桌游制作效率飙升300%

终极卡牌设计神器:CardEditor让你的桌游制作效率飙升300% 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/gh_mirrors/ca/C…

作者头像 李华
网站建设 2026/4/30 6:27:28

基于Aristotle框架构建多智能体工作流:从原理到实践

1. 项目概述:一个面向复杂任务的智能体编排框架最近在折腾AI应用开发,特别是想搞点能处理复杂、多步骤任务的智能体(Agent)。市面上框架不少,但要么太重,要么太轻,要么就是文档看得人云里雾里。…

作者头像 李华