Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core .netcore 3.1为一个功能加载多个SO文件 我从C++库中加载了一个函数,但是它依赖于LIBNL 3和LIBNL路由器3中的函数。有没有办法加载libnl共享对象和我的库_.net Core - Fatal编程技术网

.net core .netcore 3.1为一个功能加载多个SO文件 我从C++库中加载了一个函数,但是它依赖于LIBNL 3和LIBNL路由器3中的函数。有没有办法加载libnl共享对象和我的库

.net core .netcore 3.1为一个功能加载多个SO文件 我从C++库中加载了一个函数,但是它依赖于LIBNL 3和LIBNL路由器3中的函数。有没有办法加载libnl共享对象和我的库,.net-core,.net Core,我像这样加载我的库 [DllImport("MyLibrary.so")] public static extern void* myFunction(); 但是我找不到加载另一个共享库的方法 [DllImport("libnl-3")] [DllImport("MyLibrary.so")] public static extern void* myFunction(); 不起作用 如果在运行应用程序时,我将LD_PRELOAD=“libnl-3.so libnl-route-3.so”放

我像这样加载我的库

[DllImport("MyLibrary.so")]
public static extern void* myFunction();
但是我找不到加载另一个共享库的方法

[DllImport("libnl-3")]
[DllImport("MyLibrary.so")]
public static extern void* myFunction();
不起作用


如果在运行应用程序时,我将LD_PRELOAD=“libnl-3.so libnl-route-3.so”放在终端的前面,应用程序可以工作,但我不想每次都使用LD_PRELOAD。

需要检查的几件事。。。。有问题的库是否与其他库位于同一文件夹中?主库和从属库的“属性”窗口中的编译属性是什么…这些库都存储在/usr/lib中。我不知道nl-3和nl-route-3的属性是什么,这些属性在我下载它们时已经编译好了。我使用cmake编译了我的库,其中包含
添加库(MyLibrary共享的“files.c…”)
是的,问题是当.net尝试执行库时,它需要知道所有依赖项的位置。。。所以当你编译你的可执行文件时。。。这一个必须有所有要使用的库的引用。。。然后取决于许多因素,例如,您可能必须将这些依赖项设置为“复制本地”。因此,您需要再次在visual studio中为项目中的每个引用发布属性的图片。我没有使用visual studio,因此无法显示此内容。我在C++中有C部分的设置和C++部分的C++部分。所有这些都是在linux上实现的,但您仍然需要为您的可执行文件指定一种方法来查找所需的所有引用。因为这不是“visua studio”的功能,而是.NET的功能。。。。您将无法以这种或那种方式跳过加载依赖项。你说你不想使用LD_预加载。。。嗯,你将不得不加载一些如何加载。