尝试包含id3lib标头时出现找不到文件错误

file not found error when trying to include id3lib header

本文关键字:找不到 文件 错误 包含 id3lib      更新时间:2023-10-16

我下载了id3lib并将该目录放在我的main.cpp目录中,但g++和visualstudio都给出了找不到文件/目录和"未定义"错误

这是我的主要.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/)添加到其中。然后,您的第一种方法应该可以正常工作。