“gcc -lname” 和 “gcc -lname” 之间有什么区别?和“gcc libname.so ...”
我觉得两者都有效,有什么区别吗?
gcc libname.so ...
是否静态链接 libname.so
?
It seems to me that both work, any difference?
Does gcc libname.so ...
statically links libname.so
or not?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
gcc -l
在其库搜索路径中查找静态和动态库(除非给出了-static
)。gcc ... libname.so
与当前目录中的libname.so
动态链接。gcc -l
looks for both static and dynamic libraries (unless-static
is given) in its library search path.gcc ... libname.so
links dynamically withlibname.so
in the current directory.gcc ... libname.so
与gcc -shared -L 相同。 -l名称
gcc ... libname.so
is the same asgcc -shared -L. -lname
您不能静态链接动态库。您只是使用两种不同的方法来为编译器驱动程序 (gcc) 提供库名称。 larsmans 是正确的,-l 选项将查找共享库和静态库(除非您在 gcc 调用上指定 -static )。
You can't statically link a dynamic library. You're just playing with two different ways to give the name of the library to the compiler driver program (gcc). larsmans is right that the -l option will look for both shared and then static libraries (unless you specify -static on the gcc call.)