由网友(宠你一世)分享简介:我使用的是单声道2.10在Ubuntu 12的x64上运行。现在我需要知道如何使用非托管code。I'm using Mono 2.10running on Ubuntu 12 x64.Now I need to know how to use unmanaged code.[DllImport("libc...
我使用的是单声道2.10 在Ubuntu 12的x64上运行。 现在我需要知道如何使用非托管code。
I'm using Mono 2.10 running on Ubuntu 12 x64. Now I need to know how to use unmanaged code.
[DllImport("libc.so")]
public static extern int getpid ();
和,下一步我有:
getpid();
和我收到此errorL
and I recieve this errorL
$ MONO_LOG_LEVEL="debug" MONO_LOG_MASK="dll" mono libc_test.exe
Mono: DllImport attempting to load: 'libc.so'.
Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared object file: No such file or directory'.
Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared object file: No such file or directory'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport loading: 'libc.so'.
Mono: DllImport error loading library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport unable to load library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport attempting to load: 'libc.so'.
Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared object file: No such file or directory'.
Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared object file: No such file or directory'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport loading: 'libc.so'.
Mono: DllImport error loading library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport unable to load library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Hello Linux!
Mono: DllImport attempting to load: 'libc.so'.
Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared object file: No such file or directory'.
Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared object file: No such file or directory'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport loading: 'libc.so'.
Mono: DllImport error loading library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport unable to load library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Unhandled Exception: System.DllNotFoundException: libc.so
at (wrapper managed-to-native) libc_test.LibC:getpid ()
at libc_test.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: libc.so
at (wrapper managed-to-native) libc_test.LibC:getpid ()
at libc_test.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
我一直在试图解决这个问题,很长一段时间,但没有我曾尝试帮助我。 我使用的:
I've been trying to resolve this problems for a long time, but nothing I have tried helps me. I use:
dlopen("libc.so", RTLD_NOW);
也许我需要libc.so编为64?
Maybe I need libc.so compiled for x64?
推荐答案
这应该是
[的DllImport(libc.so.6的)]
或只是
[的DllImport(libc中)]
的libc是从/ etc /单声道/配置一个别名,
在GNU / Linux系统:
...
&LT; dllmap DLL =libc中的目标=libc.so.6的OS = &GT的窗口!;
...
"libc" is a alias from /etc/mono/config,
On GNU/Linux system:
...
<dllmap dll="libc" target="libc.so.6" os="!windows">
...
相关推荐
最新文章