[英]Including a library (lsusb) in a C program
对于使用C进行编程,我还是一个新手,我正在开发一个程序,在该程序中我想控制集线器上各个端口的电源。 但是,那不是我现在遇到的问题。
我在网上找到了一个程序,该程序可以完成我要编译的程序。 但是,它使用#include<lsusb.h>
。 lsusb与我要运行的文件位于一个完全不同的文件夹中(而不是子文件夹中),并且当我尝试对其进行编译时,从逻辑上来说,我得到的错误是找不到文件lsusb.h。
如何链接到该文件以便可以找到它?
这比C问题更像是GCC工具链问题(尽管大多数C编译器确实使用相同的Unixy标志)。
包含文件( <>
)周围的花括号表示您希望编译器在其标准搜索路径中搜索包含文件。 因此,您可以通过自己将其包含在标准包含文件搜索路径中的目录中,或将其目录添加到文件搜索路径中来访问该新包含文件。 使用GCC,您可以通过给gcc标记-I"directoryname"
实现后者,其中“ directoryname”是保留新的包含文件的完整文件路径。
一旦编译器找到它,链接器就可能对库文件本身有完全相同的问题(“ liblsusb.a”?)。 您以相同的方式修复。 标志GCC的链接器将需要-L
而不是-I
。
请参见gcc手册页中的“ -I”参数。 它允许您指定要在其中查找头文件的目录。 另请参见-l和-L。
或尝试#include“ ../../path_to_the_file/lsusb.h”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.