LibuvSharp icon indicating copy to clipboard operation
LibuvSharp copied to clipboard

Document how to get started using LibuvSharp

Open robertmircea opened this issue 11 years ago • 17 comments
trafficstars

Please write a short documentation/readme on how to get started using LibuvSharp including:

  • cloning from Github (considering libuv is linked as a git submodule - git clone --recursive
  • compiling the project from source code (including how to obtain libuv.so). Are there any differences between Mac/Linux and Windows compilation?

robertmircea avatar Dec 31 '13 20:12 robertmircea

Should I create a tutorial for git in a separate subdirectory or a file?

txdv avatar Jan 01 '14 10:01 txdv

Truth to be told, I compiled uv on windows only once a year ago. When I come home I will look into it again.

Now there is a makefile I use to generate 3 enums containing types of uv. So yeah, that won't work on windows.

txdv avatar Jan 01 '14 12:01 txdv

I've tried compiling on mac using make but it says cannot make target libuv.so and stops.

Libuv compiled separately successfully.

robertmircea avatar Jan 01 '14 14:01 robertmircea

Pasting some kind of output would be helpful

txdv avatar Jan 01 '14 15:01 txdv

Cloned the project with the following command:

git clone --recursive https://github.com/txdv/LibuvSharp.git

tried to make it with:

rm@mimac:~/Dev/LibuvSharp(master⚡) » make make -C libuv libuv.so make[1]: *** No rule to make target `libuv.so'. Stop. make: *** [libuv.so] Error 2

robertmircea avatar Jan 01 '14 18:01 robertmircea

I think it clones into master while you want to have a specific version. try git submodule update --init

txdv avatar Jan 01 '14 19:01 txdv

--recursive does the same as git submodule update in newer git versions. Anyway, I've erased the repo and cloned it without --recursive and then I ran git submodule update --init. Running make and the result is the same.

If you clone it fresh from Github on your computer compilation succeeds?

robertmircea avatar Jan 01 '14 19:01 robertmircea

git clone https://github.com/txdv/LibuvSharp.git
cd LibuvSharp
git submodule update --init

compiles like a charm.

Ubuntu LTS 12.0.4

txdv avatar Jan 01 '14 22:01 txdv

I fired up a VM on my mac with Ubuntu and indeed it works on Linux. So only on Mac does not compile.

robertmircea avatar Jan 01 '14 23:01 robertmircea

I use GNU Make 3.81. What version does macosx return? I don't think the makefile will work on windows either... unless you use a cygwin environment.

txdv avatar Jan 01 '14 23:01 txdv

make -v                                                                                                
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0

robertmircea avatar Jan 02 '14 09:01 robertmircea

O yes...

libuv.so is the wrong lib name on macosx, right?

it is libuv.dylib, so make -C libuv.so won't work at all!

I don't have a mac so i can't really test/adjust the build script...

txdv avatar Jan 02 '14 12:01 txdv

If it makes any easier: compile LibuvSharp.dll on Ubuntu, compile libuv.dylib on macosx and use them together.

txdv avatar Jan 02 '14 14:01 txdv

I've compiled the Examples on linux and now I am trying to run them from bin/Debug but I receive the following message. Any idea on how to approach this?

➜  Debug git:(master) ✗ ./TcpAsync.exe 

Unhandled Exception:
System.DllNotFoundException: uv
  at (wrapper managed-to-native) LibuvSharp.Loop:uv_default_loop ()
  at LibuvSharp.Loop.get_Default () [0x00000] in <filename unknown>:0 
  at Test.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: uv
  at (wrapper managed-to-native) LibuvSharp.Loop:uv_default_loop ()
  at LibuvSharp.Loop.get_Default () [0x00000] in <filename unknown>:0 
  at Test.MainClass.Main (System.String[] args) [0x00000] in <filename unknown

robertmircea avatar Jan 03 '14 10:01 robertmircea

yeah, you need the libuv library in the same directory. This error message is quite obvious. Compile libuv.dylib on macosx(I assume you try to run it on macosx)

txdv avatar Jan 03 '14 11:01 txdv

I'm having the same problem trying to make on Windows using either MSysGit or Powershell:

C:\Users\Ryan\Code\LibuvSharp [master]> make -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-pc-mingw32
C:\Users\Ryan\Code\LibuvSharp [master]> make
make -C libuv libuv.so
make[1]: Entering directory `C:/Users/Ryan/Code/LibuvSharp/libuv'
make[1]: *** No rule to make target `libuv.so'.  Stop.
make[1]: Leaving directory `C:/Users/Ryan/Code/LibuvSharp/libuv'
make: *** [libuv.so] Error 2

panesofglass avatar Feb 25 '14 03:02 panesofglass

@panesofglass I will commit the generated code into the so you don't have to run the makefile. I went by the rule to never commit generated code, because everyone can generate it for himself but now I see that it is a stupid idea because my makefile runs only on linux.

The makefile currently creates a linux binary anyway so I don't think it will be useful at all. You have to build uv.dll yourself using the official libuv instructions.

txdv avatar Apr 28 '14 08:04 txdv