eclipse - CMake 工具包 .... 它们只是用于 VS Code 还是我也会将它们用于其他环境?
问题描述
背景:我在一家有很多偏好的公司工作。我们目前使用 makefile 进行复杂的构建,开发人员选择 IDE(甚至是 VIM)来编辑源文件。
我正在寻找 CMake 来清理我们无法驯服的 gnu make 构建系统。我喜欢与 VS Code 的集成,但我无法将 IDE 指定给我们许多更棘手的 DSP 工程师和他们喜欢的编辑环境(我完全理解;我自己有点像 Visual Studio) .
无论如何,是指定工具包或工具链/目标/等的 cmake-kits.json 方法。“正确”的方式来做到这一点?还是仅适用于 VS Code。
如果它只是用于 VS Code,那么在 VSCode、eclipse 或命令行中放入新工具链(我们使用非 gnu 工具为 3 个不同的处理器进行交叉编译)的正确 CMake-y 方法是什么?
解决方案
工具包是 VS Code 的 CMake 扩展的一部分。您想阅读cmake-toolchains(7)。工具包类似于设置CC
和CXX
环境,因此 CMake 知道要为 Makefile 和 Ninja 生成器使用哪个编译器。其他生成器则不同,因为 IDE 可以控制使用哪个确切的编译器,并且您告诉 CMake 使用哪个工具集并相应地生成项目。仅供参考,工具包不必为交叉编译器编写自己的工具链文件。
您可以使用工具链文件进行交叉编译。这可能很简单,也可能很困难,具体取决于编译器以及它像gcc
交叉编译器一样的性能。如果它真的不同,那么工具链文件还不够,因为您需要更新平台项目以使其全部正常工作。由于这涉及到依赖于 CMake 实现的领域,因此没有很好的文档记录。但是https://discourse.cmake.org/有帮助。
您可以只使用 Ninja 作为构建工具。然后你设置你的工具链文件。在您最初在 CMake 上运行以创建 Ninja 项目文件后,您可以只运行 Ninja 来构建软件。
然后很容易将您的 IDE 设置为只调用 Ninja 来构建软件。
就个人而言,我不喜欢 VS Code 中的 CMake 集成(它只是一个附加组件)。对于我来说,它总是太麻烦了,不想使用它。但这有利于从构建中提取信息以正确设置 cpp-tools。至于Eclipse CDT4 - Ninja
我从未亲自使用过的项目文件。
推荐阅读
- python - 从 Python 运行 R 时出现“FileNotFoundError”
- symfony - Symfony Web 应用程序本身如何检测未应用的 Doctrine Migrations?
- c# - Sitefinity 管理中的模块和服务
- chart.js - 有没有办法让 Chart.js 对小数进行四舍五入?
- angular - 使用电子邮件 ID 自动填充数据表
- windows - Windows 10,禁用点击时提升
- php - PHP对象到数组按关联键排序
- php - 根据 Woocommerce 中的访客位置后端错误隐藏价格
- python - 用零填充 3d numpy 图像数组
- php - sha256 有多独特?足以生成比数据库中 64 个字符长的唯一编号自动递增主索引 ID 更多的唯一结果?