Включение библиотеки (lsusb) в программу на C - PullRequest
0 голосов
/ 27 января 2011

Я все еще довольно новичок в программировании на C, и я работаю над программой, в которой я хочу управлять питанием различных портов на моем концентраторе.Это, однако, не та проблема, которая у меня есть сейчас.

Я нашел в сети программу, которая делает то, что я хочу, я пытаюсь скомпилировать ее.Однако он использует #include<lsusb.h>.lsusb находится в совершенно другой папке, чем файл, который я хочу запустить (а не в подпапке), и когда я пытаюсь скомпилировать его, я, вполне логично, получаю ошибку, что файл lsusb.h не найден.

Как я могу дать ссылку на этот файл, чтобы его можно было найти?

Ответы [ 3 ]

2 голосов
/ 27 января 2011

Это больше вопрос цепочки инструментов GCC, чем вопрос C (хотя большинство компиляторов C используют одни и те же флаги Unixy).

Фигурные скобки вокруг включаемого файла (<>) означают, что вы хотите, чтобы компилятор искал по своему стандартному пути поиска включаемый файл. Таким образом, вы можете получить доступ к этому новому включаемому файлу, либо поместив его в каталог на стандартном пути поиска включаемых файлов самостоятельно, либо добавив его в путь поиска файлов. С GCC вы делаете последнее, давая gcc флаг -I"directoryname", где "имя_каталога" - это полный путь к файлу, где вы храните свой новый включаемый файл.

Как только ваш компилятор найдет его, у вашего компоновщика может возникнуть точно такая же проблема с самим библиотечным файлом ("liblsusb.a"?). Вы исправляете это так же. Для компоновщика флага GCC будет -L вместо -I.

1 голос
/ 27 января 2011

См. Параметр "-I" на странице руководства gcc. Позволяет указать каталог, в котором нужно найти заголовочный файл. Смотрите также -l и -L.

0 голосов
/ 27 января 2011

Или попробуйте #include "../../path_to_the_file/lsusb.h"

...