在C程序中包含库(lsusb)
我仍然相当新用C编程,我正在开发一个程序,我想控制我所拥有的集线器上各种端口的电源。 然而,这不是我现在遇到的问题。
我发现了一个在线程序可以完成我想要编译的程序。 但是它使用#include
。 lsusb位于一个完全不同的文件夹,而不是我想要运行的文件(而不是在子文件夹中),当我尝试编译它时,我在逻辑上足以得到错误,找不到文件lsusb.h。
如何链接到此文件以便找到它?
这更像是一个GCC工具链问题而不是C问题(尽管大多数C编译器确实使用相同的Unixy标志)。
包含文件( <>
)周围的大括号表示您希望编译器在其标准搜索路径中搜索包含文件。 因此,您可以通过将其放入标准包含文件搜索路径中的目录,或者将其目录添加到文件搜索路径来访问该新包含文件。 使用GCC,您可以通过向gcc提供标志-I"directoryname"
执行后者,其中“directoryname”是您保留新的包含文件的完整文件路径。
一旦你的编译器找到它,你的链接器可能与库文件本身有完全相同的问题(“liblsusb.a”?)。 你以同样的方式修复。 标志GCC的链接器需要的是-L
而不是-I
。
请参阅gcc手册页中的“-I”参数。 它允许您指定用于查找头文件的目录。 另见-l和-L。
或者尝试#include“../../path_to_the_file/lsusb.h”