在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”