mail-archives/mono-list/2005-February/025671.html

91 строка
3.7 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> [Mono-list] P/Invoke on amd64 was :Marshalling problems
</TITLE>
<LINK REL="Index" HREF="index.html" >
<LINK REL="made" HREF="mailto:jonpryor%40vt.edu">
<META NAME="robots" CONTENT="index,nofollow">
<LINK REL="Previous" HREF="025668.html">
<LINK REL="Next" HREF="025672.html">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>[Mono-list] P/Invoke on amd64 was :Marshalling problems
</H1>
<B>Jonathan Pryor
</B>
<A HREF="mailto:jonpryor%40vt.edu"
TITLE="[Mono-list] P/Invoke on amd64 was :Marshalling problems">jonpryor@vt.edu
</A><BR>
<I>Sat, 12 Feb 2005 11:47:42 -0500</I>
<P><UL>
<LI> Previous message: <A HREF="025668.html">[Mono-list] P/Invoke on amd64 was :Marshalling problems
</A></li>
<LI> Next message: <A HREF="025672.html">[Mono-list] P/Invoke on amd64 was :Marshalling problems
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#25671">[ date ]</a>
<a href="thread.html#25671">[ thread ]</a>
<a href="subject.html#25671">[ subject ]</a>
<a href="author.html#25671">[ author ]</a>
</LI>
</UL>
<HR>
<!--beginarticle-->
<PRE>On Sat, 2005-02-12 at 15:18 +0000, James Fitzsimons wrote:
&gt;<i> Hi Jonathan,
</I>&gt;<i>
</I>&gt;<i> On Sat, 2005-02-12 at 15:07, Jonathan Pryor wrote:
</I>&gt;<i> &gt; &gt; &gt; Unhandled Exception: System.DllNotFoundException: highgui
</I>&gt;<i> &gt; &gt; &gt; in &lt;0x000bf&gt; (wrapper managed-to-native) Slam.CvImage:cvLoadImage
</I>&gt;<i> &gt; &gt; &gt; (string,int)
</I>&gt;<i> &gt; &gt; &gt; in &lt;0x00068&gt; Slam.CvImage:.ctor (string,bool)
</I>&gt;<i> &gt; &gt; &gt; in &lt;0x00069&gt; Slam.MainClass:Main (string[])
</I>&gt;<i> &gt;
</I>&gt;<i> &gt; Silly question, but where is libhighgui.so installed? IIRC, 64-bit apps
</I>&gt;<i> &gt; need to have their libraries in /lib64 or /usr/lib64. Is this where
</I>&gt;<i> &gt; libhighgui.so is located?
</I>&gt;<i> libhighgui.so is located in /usr/local/lib. This should be fine however
</I>&gt;<i> as according to this <A HREF="http://www.jprl.com/interop.html#library-linux">http://www.jprl.com/interop.html#library-linux</A> if
</I>&gt;<i> your target library is in /etc/ld.so.cache P/Invoke should find it.
</I>
I know what it says; I wrote it. I also know that I have virtually zero
knowledge or experience with mixed 64-bit/32-bit platforms, which
Linux/Amd64 is. Consequently, my guide is somewhat lacking, if only
because I don't know everything. :-)
I have heard that there are /lib64 directories that are searched for 64-
bit libraries, but that's about it. Not having an AMD64 platform of my
own, it's hard to test for anything else.
So as an experiment, try writing a C program which uses that library,
and compile/link with the 64-bit GCC (whatever that may be named), and
run your C program. If this fails, which I suspect it will, you will
know why Mono can't find your library. :-)
Then, you can tell us what it takes to find the library, I can update my
guide, and everyone can be happy. :-)
- Jon
</PRE>
<!--endarticle-->
<HR>
<P><UL>
<!--threads-->
<LI> Previous message: <A HREF="025668.html">[Mono-list] P/Invoke on amd64 was :Marshalling problems
</A></li>
<LI> Next message: <A HREF="025672.html">[Mono-list] P/Invoke on amd64 was :Marshalling problems
</A></li>
<LI> <B>Messages sorted by:</B>
<a href="date.html#25671">[ date ]</a>
<a href="thread.html#25671">[ thread ]</a>
<a href="subject.html#25671">[ subject ]</a>
<a href="author.html#25671">[ author ]</a>
</LI>
</UL>
</body></html>