SoftwareGuy / Ignorance

Ignorance utilizes the power of ENet to provide a reliable UDP networking transport for Mirror Networking.
Other
248 stars 31 forks source link

libenet.bundle cannot be found under macOS? #57

Closed sea520-coder closed 4 years ago

sea520-coder commented 4 years ago

I used the ignorance library under macOS, but it reported an error

Unhandled exception. System.DllNotFoundException: Unable to load shared library 'enet' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(libenet, 1): image not found at ENet.Native.enet_initialize()

Environment: macOS 10.14.5 dotnet3.1 console

I'm using libenet.bundle, I also use xlua, but xlua is dylib format, no problem, please advise how to solve it? Or how do you convert a bundle to dylib?

SoftwareGuy commented 4 years ago

Hmm, that's weird. The build process on MacOS here actually renames the .dylib to .bundle; but I wonder if Unity is dumb and it prefers dylib extensions for libraries, so when it sees a dylib it'll load that, but then it tries to find the enet library and it fails to do so.

I assume you're using this inside a Unity Environment? If so, what version of Unity are you using? I might try to reproduce this locally on a Mac.

SoftwareGuy commented 4 years ago

Shit - I just realized this error was first reported 6 days ago. Wow, I guess I'm really behind the eight ball. My apologies for that.

sea520-coder commented 4 years ago

Shit - I just realized this error was first reported 6 days ago. Wow, I guess I'm really behind the eight ball. My apologies for that.

The problem has been solved.I used unity2019.3.4.There are no problems under unity.Because I'm going to run the server-side program, which is in dotnet mode, it needs dylib instead of the bundle under macos