我制作了名为drive.c和mylib.c的c程序。
drive.c是主模块mylib.c是子模块,我希望它作为共享库工作。
我可以在MINGW上使用此步骤编译它们
gcc âfPIC âg âc âWall mylib.c
gcc -shared -Wl,-soname,libmylib.so.1 -o /c/opt/lib/libmylib.so.1.0.1 mylib.o -lc
gcc -g -Wall -Wextra -pedantic -I./ -L/c/opt/lib -o drive.exe drive.c âl:libmylib.so.1
最后我做到了
drive.exe
然后显示Windows对话框消息
program can start because libmylib.so.1.0.1 is missing
.
设置LD_LIBRARY_PATH。
$ set|grep LD
LD_LIBRARY_PATH=:/c/opt/lib
$
还有libmylib.so.1.0.1
$ ls -la /c/opt/lib
total 98
drwxr-xr-x 2 JAC484 Administrators 4096 Mar 18 14:44 .
drwxr-xr-x 7 JAC484 Administrators 4096 Mar 14 15:47 ..
-rwxr-xr-x 1 JAC484 Administrators 45356 Mar 18 14:23 libmylib.so.1
-rwxr-xr-x 1 JAC484 Administrators 45356 Mar 18 14:23 libmylib.so.1.0.1
如果我复制了
libmylib.so.1.0.1
在的同一目录中
驱动器.exe
,
驱动器.exe
可以运行。
如何告诉系统libmylib.so.1.0.1在哪里?