[Mono-dev] File not found error when using Activator.CreateInstanceFrom()

Jonathan Pryor jonpryor at vt.edu
Wed Jan 19 11:48:24 EST 2011


On Jan 18, 2011, at 4:52 PM, mike wrote:
> Hey Jonathan P,  I noticed that u wrote the 'Interop with Native Libraries'
> article on the mono web site. Very good stuff. I have a question, can mono
> link or inter op to a Linux static library instead of a shared object? (i.e
> mylib.a)

_Maybe_. :-)

This won't work:

	[DllImport ("mylib.a")]
	static extern void Foo();

That won't work because dlopen(3) is used to load the specified library, and dlopen("mylib.a") will fail.

HOWEVER, if you're using the Mono embedding API, write a native app, and link your native app to mylib.a:

	gcc -o yourapp yourapp.c mylib.a `pkg-config --cflags mono-2` ...

Then you can do:

	[DllImport ("__Internal")
	static extern void Foo();

See also:

	http://www.mono-project.com/DllImport#Linux_Shared_Library_Search_Path
	http://www.mono-project.com/Embedding_Mono#Exposing_C_code_to_the_CIL_universe

 - Jon



More information about the Mono-devel-list mailing list