我的任务是以动态库的形式创建 C ++ SDK ,最有可能。
它应该用于不同的平台 - Windows(32/64位),Linux(32/64位),Mac OS,Android 和 iOS 。我在多平台项目设置方面没有多少经验,我试图决定使用哪些方法和工具进行最简单的开发和部署。
附注:我还必须在Bamboo CI服务器上准备自动构建(作业),以便为每个所需目标运行编译和测试。
我的主要困境是:
我知道我的问题非常复杂,对于这些问题都没有直接的答案,但我们非常感谢每一条建议甚至部分答案:)
答案 0 :(得分:2)
正如你所说,没有一个适合所有人的解决方案,所以我会提出一些一般性的建议。随意选择,因为您认为最有利。
*是的,Qt非GUI工作也很好!
我在第二点讨论了这一点,但我的一般建议是使用原生工具链。除了MacOS之外,设置虚拟机,构建服务器等以构建本机代码也很容易,而且我对交叉编译器的体验是它们总是会增加另一层心痛,甚至比远程访问更糟糕。单独的建造者计算机。
如果您避免使用与系统相关的标头,库或扩展,那么您使用的系统并不重要。像<windows.h>
和<linux/*.h>
这样的事情是显而易见的,但可以通过尽可能频繁地测试外国系统来验证跨平台兼容性的最佳方式。
-pedantic
和-ansi
标志,GCC会给你一些关于特定于平台的扩展的提示。作为explaind here,这些标志告诉GCC警告任何特定于GNU的扩展。答案 1 :(得分:1)
您很可能需要多个工具链(您提到C ++并且它没有ABI,因此可以在Windows上使用,或多或少需要使用CL构建)。因此,您将无法使用单个特定于供应商的项目设置。随着项目的发展,维护多个版本的项目文件变得非常难以维护,因此您选择的构建系统至关重要。查看Shake并与具有类似功能集的替代品进行比较。 IDE的选择不太重要 - 许多程序员更喜欢他们喜欢的编辑器(Emacs或Vim),并且可能需要在任何支持的平台上工作。