Ошибка файла не найдена при попытке включить заголовок id3lib

Я скачал 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 ответ

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

За #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/) к нему. Тогда ваш первый подход должен работать нормально.

Другие вопросы по тегам