linux下链接库分为静态链接库.a和动态链接库.so。静态链接库被编译进可执行程序中,而动态链接库只有在运行时加载,映射到进程的地址空间中。同一份静态链接库被同一个工程引用多次有时会出错http://blog.codingnow.com/2012/01/lua_link_bug.html即库中符号会重复,所以使用动态链接库会更为安全。
使用objdump可以查看目标文件(obj)的符号表,如果出现no symbols类似的错误即可了解该obj需要什么的符号,确定其所需的库。
ldd可以确定该可执行程序、库、obj所需要的链接库。