如何创建和使用动态和静态库?
任何人都可以在这里以简单的方式解释如何在静态库和动态库中创建和使用动态库c
和静态库吗?另外请告诉我为什么使用gcc -c
和gcc -o
。我知道gcc
是一个编译器但是-c
和-o
。这个目的是什么?
答案1
由于您不知道-c
(编译目标文件)和-o
(指定输出文件)做什么,我建议从简单的可执行编译开始。了解什么是目标文件以及它们如何组合在一起。
继续使用静态库。了解静态库只是归档在一起的几个目标文件。如何向编译器指定它们以及编译器如何找到它们。
最后,尝试动态的。了解它们在运行时链接。您需要指定在哪里找到它们。它们以不同的方式编译和链接(你见过-fPIC
吗?)。他们可以互相依赖。它们是强大的野兽,可以轻易咬你:)
和简单的创建静态和动态库的方法?忘记手动编写它们并使用 cmake。如果您想深入了解,请运行 make with VERBOSE=1
,查看编译器参数并学习。
答案2
不知道从哪里开始回答你的问题。
如果你只是查阅 gcc 的手册页
man gcc
它将完美解决您有关 gcc 的选项和用法的问题。
对于动态和静态库的部分,有很长的路要走,并且互联网上有很多清晰易懂的文档,例如:
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
是一个很好的起点