Я скачал 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>
Недостаточно положить его рядом с вашим основным файлом. Как вы можете видеть в своем первом подходе, когда вы использовали #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/
) к нему. Тогда ваш первый подход должен работать нормально.
Других решений пока нет …