在C程序中包含库(lsusb)

时间:2011-01-27 18:30:19

标签: c fedora

我仍然相当擅长用C编程,我正在开发一个程序,我想控制我所拥有的集线器上各种端口的电源。然而,这不是我现在遇到的问题。

我发现了一个在线程序可以完成我想要编译的程序。但是它使用#include<lsusb.h>。 lsusb位于一个完全不同的文件夹,而不是我想要运行的文件(而不是在子文件夹中),当我尝试编译它时,我在逻辑上足以得到错误,找不到文件lsusb.h。

如何链接到此文件以便找到它?

3 个答案:

答案 0 :(得分:2)

这更像是GCC工具链问题,而不是C问题(尽管大多数C编译器确实使用相同的Unixy标志)。

包含文件(<>)周围的大括号表示您希望编译器在其标准搜索路径中搜索包含文件。因此,您可以通过将其放入标准包含文件搜索路径中的目录,或者将其目录添加到文件搜索路径来访问该新包含文件。使用GCC,您可以通过向gcc提供标志-I"directoryname"来执行后者,其中“directoryname”是您保留新的包含文件的完整文件路径。

一旦你的编译器找到它,你的链接器可能与库文件本身有完全相同的问题(“liblsusb.a”?)。你以同样的方式修复。标志GCC的链接器需要的是-L而不是-I

答案 1 :(得分:1)

请参阅gcc手册页中的“-I”参数。它允许您指定用于查找头文件的目录。另见-l和-L。

答案 2 :(得分:0)

或者尝试#include“../../ path_to_the_file / lsusb.h”