Linux build is putting libNative.so in wrong place

I am new to this Unity world, so I might be doing something wrong…

But, I am getting a DllNotFoundException for my Linux build. The Windows and MacOS build work fine, so it is not my managed code. The Linux library works fine in other .NET apps, so it is not that. And finally, when I look at the error message and move my native library to the location it is looking in, the game works.

Basically, this is a simple game that creates a 2D texture using SkiaSharp. My p/invoke looks like this (SKColorType is an enumeration):

[DllImport("libSkiaSharp", CallingConvention = CallingConvention.Cdecl)]
public extern static SKColorType sk_colortype_get_default_8888();

I have all of this on GitHub: GitHub - mattleibow/SkiaSharpUnityDemo: A simple demonstration app to show an example of a SkiaSharp being used with Unity.
The log files:
 - console log: Unity-Console.log · GitHub
 - player log: Unity-Player.log · GitHub

SkiaSharp: GitHub - mono/SkiaSharp: SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.

This may be related to my question: http://answers.unity3d.com/questions/1394446/dllnotfoundexception-on-linux-2.html

The answer is here: https://forum.unity.com/threads/linux-build-is-putting-libnative-so-in-wrong-place.497250/

What’s going on here is that linux expects libraries to be libSomething.so - so since you’re importing libSkiaSharp instead of SkiaSharp, it’s looking for liblibSkiaSharp.so