【发布时间】:2013-08-17 02:51:11
【问题描述】:
我从here 下载了libftp 源代码,并使用make 编译它。现在我在同一个目录中只有一个名为“ftp”的二进制文件。我是否需要将其移动到根目录之一,例如 /usr/bin?我还需要源文件以便#include 库吗?
【问题讨论】:
-
如果你想让它真的像一个库,你需要构建对象,然后使用
ar将它打包成库格式(例如参见cs.dartmouth.edu/~campbell/cs50/buildlib.html)。然后,生成的文件将进入您的 C lib 路径,您可以通过gcc -lmylib myprogram.c在编译行中引用它。 -
说实话,我一直在努力完全掌握图书馆的完整概念以及它们是如何从头开始工作的。我真的不知道我想怎么做,我只是想按照预期的方式使用它。那么如果我目前有一个已编译的二进制文件,下一步可能是什么?我如何才能输入
#include <...>并开始使用它? -
#include只是告诉你的程序它是如何定义的。然后链接器需要以某种方式找到它。一种方法是将对象 (.o) 文件放在已知目录中,然后说gcc myprog.c /path_to/mylib.o。这是最简单的方法。如果您想在其他地方的一堆不同程序中使用它,那么将其作为库是有意义的。我提供的链接解释了制作 lib 的过程。
标签: c linux ubuntu-12.04