我正在尝试使用我制作的 DLL 编译我的代码,当我编写时出现以下错误./prog
./prog:加载共享库时出错:libctest.so.1:无法打开共享对象文件:没有这样的文件或目录
我按照这里的教程进行操作,我的单声道应用程序加载 dll 和调用函数没有问题。本教程的关键部分是
gcc -Wall -fPIC -c *.c
gcc -shared -Wl,-soname,libctest.so.1 -o libctest.so.1.0 *.o
mv libctest.so.1.0 /opt/lib
ln -sf /opt/lib/libctest.so.1.0 /opt/lib/libctest.so.1
ln -sf /opt/lib/libctest.so.1.0 /opt/lib/libctest.so
我的 C# 代码可以
[DllImport("path/to/CDLL", CallingConvention = CallingConvention.Cdecl)]
public static extern void test();
我用
gcc -Wall -L/opt/lib main.c -lctest -o prog
这是我改变的第一件事。prog.c 到 main.c。从那里我只是运行./prog
以获取此问题顶部的错误。我以 root 身份执行此操作,因此不应该存在权限问题。我也 chmod 755 这样的。我究竟做错了什么?这是开放使用。我必须创建,/opt/lib
所以我认为这条路径没有在它应该在的地方注册