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