Ошибка файла не найдена при попытке включить заголовок id3lib - PullRequest
0 голосов
/ 29 декабря 2018

Я скачал id3lib и поместил каталог в мой каталог main.cpp, но и g ++, и Visual Studio дают файл / каталог не найденный и "неопределенные" ошибки

Вот мой main.cpp:

#include <iostream>
#include <id3lib-3.8.3/include/id3/tag.h>
int main() { std::cout << "hi"; }

g ++ main.cpp дает:

main.cpp:2:46: fatal error: id3lib-3.8.3/include/id3/tag.h: No such file or 
directory
 #include <id3lib-3.8.3/include/id3/tag.h>

, если я использую "" вместо <>, я получаю эту ошибку:

id3lib-3.8.3/include/id3/tag.h:32:30: fatal error: id3/id3lib_frame.h: No 
such file or directory
 #include <id3/id3lib_frame.h>

1 Ответ

0 голосов
/ 29 декабря 2018

Недостаточно поместить его рядом с вашим основным файлом.Как вы можете видеть в первом подходе, когда вы использовали #include с <>, он не может его найти, потому что (скопировано с здесь ):

For #include <filename> препроцессор выполняет поиск в зависимости от реализации, обычно в каталогах поиска, предварительно назначенных компилятором / IDE.Этот метод обычно используется для включения стандартных заголовочных файлов библиотеки.

Вы не указали своему компилятору, где искать id3lib-3.8.3/include/id3/tag.h, поэтому <> не будет работать для вас.

Тогда вы пытались "".он обнаружил id3lib-3.8.3/include/id3/tag.h, но в tag.h есть #include <id3/id3lib_frame.h>. Итак, вернемся к проблеме с первым подходом, верно?

Что вам нужно сделать, так это то, что вам нужно указать компилятору / IDE, гдепоищите эти файлы.В Visual Studio щелкните правой кнопкой мыши на файле вашего проекта, затем выберите Свойства-> C / C ++ -> Общие-> Дополнительные каталоги включения и добавьте в него библиотеку включения ($(ProjectDir)id3lib-3.8.3/include/ или, возможно, $(SolutionDir)id3lib-3.8.3/include/).Тогда ваш первый подход должен работать нормально.

...