有这个文件:
\n\n加一c
\n\nint op(int i){ return i+1; }\nRun Code Online (Sandbox Code Playgroud)\n\n主程序
\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <dlfcn.h>\n\nint main(int argc, char **argv){\n if (argc<3){\n printf("usage %s <library> <number>\\n",argv[0]);\n exit(1);\n }\n\n char *lname = argv[1];\n int num = atoi(argv[2]);\n void *handle = dlopen(lname, RTLD_LAZY);\n if(!handle)\n perror("dlopen");\n\n int (*opp)(int);\n opp=dlsym(handle, "op");\n if(!opp)\n perror("dlsym");\n\n printf("number before:%i\\nnumber after:%i\\n",num,opp(num)); \n dlclose(handle);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n编译为:
\n\n$cc -fPIC -shared -o plusone.so -ldl plusone.c\n$cc -o main.exe -ldl -Wpedantic main.c\nwarning: ISO C forbids assignment between function pointer and \xe2\x80\x98void *\xe2\x80\x99 …Run Code Online (Sandbox Code Playgroud)