对于 FTXUI 的安装与配置, 官方已经给出了三种方案.
- 第一种: 使用 FetchContent 远程拉取
- 第二种: 在你本地安装 FTXUI 库, 然后通过 find_package 使用
- 第三种: 使用 Git 子模块
FetchContent
无需手动下载安装 FTXUI, 通过 CMake 自动从 GitHub 拉取并编译依赖
include(FetchContent)
FetchContent_Declare(ftxui
git_repository https://github.com/arthursonzogni/ftxui
git_tag v6.1.9
)
FetchContent_MakeAvailable(ftxui)
add_executable(main main.cpp)
target_link_libraries(main
PRIVATE ftxui::screen
PRIVATE ftxui::dom
PRIVATE ftxui::component
)
find_package
可以自行通过系统或包管理器安装 FTXUI, 并通过 find_package 使用
find_package(ftxui REQUIRED)
add_executable(main main.cpp)
target_link_libraries(main
PRIVATE ftxui::screen
PRIVATE ftxui::dom
PRIVATE ftxui::component
)
Git 子模块
适用于需要将依赖源码一起提交到项目中的场景
git submodule add https://github.com/arthursonzogni/ftxui external/ftxui
git submodule update --init --recursive
add_subdirectory(external/ftxui)
add_executable(main main.cpp)
target_link_libraries(main
PRIVATE ftxui::screen
PRIVATE ftxui::dom
PRIVATE ftxui::component
)
对比
特性 | FetchContent | find_package | Git子模块 |
---|---|---|---|
依赖管理 | 自动下载 | 需预安装 | 源码嵌入项目 |
版本控制 | 通过git_tag指定 | 依赖系统版本 | 锁定子模块commit |
构建速度 | 首次较慢 | 最快 | 首次较慢 |
跨平台支持 | 全平台 | 依赖包管理器 | 全平台 |
适用场景 | 快速原型/单一项目 | 多项目共享/系统级集成 | 版本锁定/离线开发 |