performance - 如何构建一个真正跨平台的 CLI?
问题描述
我正在尝试寻找制作跨平台 CLI 的最佳方式,该 CLI 无处不在:Windows、Mac、iOS、Android 和 Linux。
我在 C 中开始了一个东西,但是为每个平台构建库是一项可怕的工作并且非常复杂,只是尝试为 windows 构建 sqlite,我认为我没有走正确的路。
那么有没有一种“东西”可以提供快速的性能和轻松的跨平台构建,比如 Qt 之类的东西?
还是为每个平台重新编码所有内容更简单?
我认为当不涉及 GUI 但找不到任何东西时,构建跨平台 C 代码会更容易。
试过cmake,但是对于一直使用make的人来说理解起来非常复杂,我认为在iOS或Android下使用起来并不容易。
也许有一个包管理器无处不在?我可以在每个平台上轻松安装 sqlite 吗?
我想构建一个在任何地方都可以使用的 API,以便 GUI 可以使用它,我想要编写特定于平台的 GUI。
解决方案
为了构建 @Mathusalem 所说的内容,我们使用 Docker 和 Jenkins 在各种平台上构建系统。
您可以使用如下设置:
- 詹金斯大师(无论你喜欢什么操作系统)
- 詹金斯奴隶 1:Linux
- 詹金斯奴隶 2:Windows
- 根据您要定位的操作系统,根据需要添加其他 Jenkins 从站
然后,您可以让主服务器在提交时为两个从服务器创建构建作业,并让它们并行构建。作为管道的一部分,您还可以挂钩其他步骤,包括测试和集成。
推荐阅读
- c++ - (C++) 如何使用 Payload Object 来实现线程池?
- ios - 验证 AASA 文件
- python - OpenCV 退出代码 -1073741819 (0xC0000005)
- kotlin - E/RecyclerView:没有附加适配器;在 kotlin 中跳过布局
- package-managers - 使用packages.config时如何递归调用nuget restore?
- python - 使用元组存储信息
- reactjs - 从子组件到父组件访问 react-table 实例的最佳方法 [需要您的意见]
- android - 使用 addListenerForSingleValueEvent 初始加载数据,使用 addChildEventListener 更新列表
- cplex - 在 OPL 中有没有一种方法可以最大化一个参数并最小化另一个参数?
- opengl - 4x4 旋转和位置矩阵如何工作(Cframes)