int MyFunc()
我有适用于 Linux 和 Windows 的导出方法的 C++ 共享库。
从 C# 中,我MyFunc
使用以下签名调用。
[DllImport(@"__Internal", CharSet = CharSet.Ansi, EntryPoint = "MyFunc")]
static extern unsafe int MyFunc();
// Later I'm using :
MyFunc();
此代码在 Windows 上运行良好,但在 linux 内部这会引发异常EntryPointNotFound
。
我已经用 -rdynamic 选项编译了我的 C++ 库,我可以看到 MyFunc 被导出为带有 nm 的 D 标志,但这也对我没有帮助。
如果我简单地更改DllImport(@"__Internal"
为DllImport(@"mys.so"
then 将在 linux 上正常工作,但我必须DllImport(@"mys.dll"
在 Windows 中使用这会破坏代码交叉兼容功能。
所以我想避免这种情况。
我看不出有任何错误说明为什么__Internal
不能在 Linux 上运行。
请注意,我使用的是单声道。
知道为什么这在 Linux 上不起作用吗?