CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 为什么需要 CMake:跨平台构建

    C++ SELF
    等级 31,课时 0
    我们来解析为什么在 C++ 中构建很快会成为一项独立的任务:从多文件项目,包含 .cpp/ .hpp 和 include/, src/ 文件夹,到典型的编译和链接错误。展示“指挥者”(对编译器和链接器的协调)的作用,解释跨平台性(Visual Studio / Make / Ninja / Xcode),并确立正确的模型: CMake 是对项目及其 targets 的描述,而不是“又一个编译器”。
    可用
  • 最小化的 CMakeLists.txt:project

    C++ SELF
    等级 31,课时 1
    解析 C++ 的 CMake 项目“骨架”:为什么需要文件 CMakeLists.txt, project(...) 命令做了什么,如何通过 add_executable(...) 声明目标,为什么通过 target_compile_features(...) 固定标准很重要,以及如果忘记把 .cpp 加入构建时,如何诊断典型的链接错误 undefined reference。
    可用
  • 在 CMake 中的 target 方法:target 的属性

    C++ SELF
    等级 31,课时 2
    我们分析为什么像 CMAKE_CXX_FLAGS 和 include_directories 这样的“全局魔法”难以扩展,以及如何转向严格的基于 target 的做法:通过 target_compile_features(例如 cxx_std_23)设置标准,通过 target_compile_definitions 设置宏,通过 target_compile_options 设置警告和编译器选项。单独固定可见性( PRIVATE/ PUBLIC/ INTERFACE)的概念,并构建一个迷你项目 MiniCalc。
    可用
  • target_include_directories

    C++ SELF
    等级 31,课时 3
    我们来讲解 CMake 如何通过 target_include_directories 为特定 target 指定 include 路径:为什么在没有配置的情况下编译器“看不到”头文件、 PRIVATE/ PUBLIC/ INTERFACE 这些可见性有何区别、include 路径如何通过 target_link_libraries 对消费者产生传递性,以及如何将公共 API( include/)与实现的内部头文件( src/)分离。
    可用
  • target_link_libraries:依赖、链接与传递性

    C++ SELF
    等级 31,课时 4
    我们来拆解在 CMake 中如何通过 target_link_libraries 链接各个 target,为什么 # include 不会“顺带带上”实现, PRIVATE/ PUBLIC/ INTERFACE 有什么区别,以及 CMake 如何沿着依赖图传递(或不传递)构建要求。实践部分会搭建一个包含 cli 和 calc 库的示例,并学习如何诊断 undefined reference。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym