【问题标题】:Building cross platform shared libraries from C# code从 C# 代码构建跨平台共享库
【发布时间】:2015-03-11 10:21:32
【问题描述】:

我有一个使用 C# 开发软件系统的场景。该系统中的算法已实现为共享库(但也用 C# 编写),以试图使系统更加模块化,即可以通过添加/删除各种 .dll 来添加/删除功能。

我对在非 Windows 平台上重用现有代码库的难易程度感兴趣。是否有可能:

a) 构建整个系统,使其可以在非 Windows 平台上运行?

b) 构建整个系统,使其可以在安卓设备上运行?

c) 交叉构建组件 C# 共享库,以便它们可以在基于 linux 的平台上运行(或通过 NDK 作为 android 原生库)?

除了对这些选项是否可能感兴趣之外,我还对它们是否合理感兴趣,即重用我们的东西是否有意义'已经或真的应该从头开始吗?

【问题讨论】:

  • 如果我理解正确,您是在尝试在 android NDK 和通用 Linux 共享对象中使用 C# 代码,对吗?
  • 我想知道是否可以以这种方式重用代码,是的..
  • NDK 几乎无法与 C# 一起使用,而使用 C 则更好。

标签: c# android linux cross-platform


【解决方案1】:

我认为您正在尝试将 C# 代码移植到 NDK。由于 Android NDK 支持 C++ 作为本机语言并且(很像 Java 的 JNI),但我不知道 NDK/JNI 中的 C#,您可以尝试 this,这可能会帮助您将 C# 代码移植到 C++(我没有尝试过) /used) 如果代码移植成功对您来说似乎可行/可能,那么您可以尝试使用 NDK/JNI。对于 linux 部分,如果您使用 NDK 成功将这些代码移植到 android,这没什么大不了的,因为 android 的内核只是 linux 的一个分支。

【讨论】:

    最近更新 更多