gpt4 book ai didi

c# - 无法从 Windows Mono C# 项目访问 Linux gcc 编译的 .so 共享库

转载 作者:太空狗 更新时间:2023-10-30 00:21:45 26 4
gpt4 key购买 nike

这是设置:

我有一个共享库(带有 extern "C"方法的 C++),我在 Linux 中编译并创建了一个 library.so 文件。

我在同一个盒子 (Ubuntu) 上使用了 Mono Develop,并且能够 DLLImport("library.so") 并毫无问题地访问我的外部函数。

当我将该 .so 文件复制到 Windows 机器 (Win7) 并尝试做同样的事情时,问题就出现了,但这次是在 Windows 下使用 MonoDevelop 运行 Mono。

我收到 System.BadImageFormatException。我试过在 library.so 文件之前做一个“./”,但没有任何帮助。我检查并仔细检查了它是否在寻找正确的目录,确实如此。

为什么我无法在 Windows/Mono 下访问此 .so 文件,我缺少什么重要的东西吗?

最佳答案

您不能在 Windows 上将 .so elf 二进制文件用于您的 native 代码。您需要将其重新编译为 Windows 支持的 native 二进制文件(即 .dll)。

我建议您阅读我们的 wiki page about cross platform interop between managed an unmanaged code.

关于c# - 无法从 Windows Mono C# 项目访问 Linux gcc 编译的 .so 共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4017324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com