1

我正在尝试从https://github.com/aspnet/home运行示例

我按照文档中的所有步骤进行操作,但无法使其正常工作。

我正在运行dnx . kestrel(在 CentOS 上),错误是:

System.InvalidOperationException: Unable to load libuv. Make sure libuv is installed and available as libuv.so.1
  at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.Load (System.String dllToLoad) [0x00000] in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.KestrelEngine..ctor (ILibraryManager libraryManager, IApplicationShutdown appShutdownService) [0x00000] in <filename unknown>:0
  at Kestrel.ServerFactory.Start (IServerInformation serverInformation, System.Func`2 application) [0x00000] in <filename unknown>:0
  at Microsoft.AspNet.Hosting.Internal.HostingEngine.Start () [0x00000] in <filename unknown>:0

libuv.so.1.0.0/usr/local/lib

[/usr/local/lib]$ ls
libuv.a  libuv.la  libuv.so  libuv.so.1  libuv.so.1.0.0  pkgconfig

我还为libuv.so.1in/usr/lib/usr/lib64

我什至检查了红隼的源代码,但我找不到问题所在。

我错过了什么?

4

1 回答 1

5

设置库加载器路径以包含您的本地库目录,并且Libuv.cs中的 LoadLibrary应该可以找到它:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
dnx . kestrel

man dlopen更多细节:

Linux Shared Library Search Path
From the dlopen(3) man page, the necessary shared libraries needed by the program are searched for in the following order:

1) A colon-separated list of directories in the user’s LD_LIBRARY_PATH environment variable.
2)....
于 2015-08-12T23:12:50.557 回答