2021-05-22
fun.h:
void info();fun.c:
#include <stdio.h>
#include "fun.h"
void info(){
printf("you know me!");
}
gcc -fPIC -shared fun.c -o libfun123.somain.c:
#include "fun.h"
int main(int argc, char const *argv[])
{
info();
return 0;
}gcc main.c libfun123.so -o app.out此时检查编译的可执行文件:
➞ ldd app.out
linux-vdso.so.1 (0x00007fffdbbee000)
libfun123.so => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2f3e5a9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2f3e7cf000)发现找不到动态库,我们将库需要加入到库目录中。
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/mnt/d/workspace/codeblock/temp/share此时找到了
➞ ldd app.out
linux-vdso.so.1 (0x00007ffcfcf96000)
libfun123.so => /mnt/d/workspace/codeblock/temp/share/libfun123.so (0x00007fcdd8cb7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcdd8a98000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcdd8cc3000)运行:
➞ ./app.out
you know me!%