赞
踩
./libevent_Web: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
静态链接是指在编译时,将程序所依赖的函数或数据直接复制到最终的可执行文件中。这意味着可执行文件包含了程序运行所需的所有代码和数据。
在GCC中使用-static选项来指定静态链接。但是,不是所有的库都提供静态版本,所以你可能需要确保你的系统上安装了相应的静态库文件(通常以.a为扩展名)。
gcc -static my_program.c -o my_program
动态链接是指在运行时,程序所依赖的函数或数据从外部的共享库(shared library)中加载。这意味着可执行文件只包含了必要的引用信息,而实际的代码和数据则存储在外部的共享库中。
在GCC中,默认就是使用动态链接。你可以使用-shared选项来创建共享库,使用-L和-l选项来指定链接时搜索的库路径和库名。
gcc -shared -o libmylib.so mylib.c
gcc my_program.c -L/path/to/libs -lmylib -o my_program
当然,针对动态库链接还有其它五种方法,这里就不进行深层次的说明了。(后续可能专门写一期)
Linux和Windows系统下的动态库、静态库原理类似,不过不同系统下后缀不同,同时链接、创建的方式也不同:
Linux | windows | |
---|---|---|
静态库 | .a | .lib |
动态库 | .so | .dll |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。