在不同平台上从android-ndk构建的库是否不同

时间:2018-12-21 08:33:22

标签: android android-ndk

我想发布我的SDK。但是我不知道如果我从不同的平台(使用相同ndk版本的Mac或Window)编译.so会遇到一些未知的问题。

我认为不同平台之间是相同的,但是我没有Windows平台可以确认。 那么这些库在不同平台上的构建是否不同?

2 个答案:

答案 0 :(得分:4)

坦率地说,您不应该相信编译器会在确定的相同输入上产生相同的代码。有很多,但很多没有。使用优化时尤其如此。 (这种情况现在已经得到解决,现在已经得到改善)。这样的结果是,无论您基于什么构建,都必须仅释放经过测试的确切二进制文件。

也就是说,您可以完全在多个平台上使用NDK进行构建。许多大型游戏工作室都使用Windows和Macs进行开发,并且生产版本是在Linux连续集成系统上完成的,因此实际上一直都在这样做。您可能会比ndk本身更容易遇到任何额外工具的麻烦。

答案 1 :(得分:1)

您可以安全地混合使用Mac和Windows构建的Android二进制文件,但请确保使用相同的NDK版本和相同的参数(最值得注意的是,相同的APP_STL)。

您可以将Mac上的本机库发送给在Windows上工作的Java开发人员。他们甚至不需要NDK,也不在乎您使用的是哪个版本(只要有效)。