【发布时间】:2016-12-11 21:40:54
【问题描述】:
我的任务是创建一个 C++ SDK - 很可能是以动态库的形式。
它应该在不同的平台上使用 - Windows(32/64 位)、Linux(32/64 位)、Mac OS、Android 和 iOS。我在多平台项目设置方面没有太多经验,我正在尝试决定使用哪些方法和工具来实现最简单的开发和部署。
旁注:我还必须在 Bamboo CI 服务器上准备自动构建(作业),以便为每个所需目标运行编译和测试。
我的主要困境是:
- 项目设置。我应该准备不同的项目模式以在不同的平台上使用(如 Windows 上的 .sln 和 Linux 上的 makefile),还是尝试使用 CMake 之类的工具?是否有可能准备一个适合所有这些目标平台的 CMake 项目?
- 编译工具链。我应该为每个平台使用“本机”C++ 编译器(如 Windows 上的 MSVC 和 Linux 上的 GCC),还是像 Clang + LLVM 这样的单一工具链? Clang + LLVM(显然还有一些链接器)甚至能够为我需要的所有这些平台构建可分发的二进制文件吗?
- 开发环境。哪种 OS/IDE 最适合从事此类项目?我更喜欢在 Windows 上工作,我常用的 IDE 是 Visual Studio - 在这种情况下是否可行,或者其他更合适的方法?
我知道我的问题非常复杂,对于这些问题中的任何一点都没有直接的答案,但每一个建议甚至部分答案都将不胜感激:)
【问题讨论】:
-
一定要用cmake之类的工具。我建议先用 gcc 编译,然后用 visual 进行测试(先用 visual,用 gcc 编译时你可能会发现警告页面),但这是我的意见
标签: c++ cross-platform