尝试包含id3lib标头时未找到文件错误

时间:2018-12-29 05:51:24

标签: c++ header include id3lib

我下载了id3lib并将目录放置在我的main.cpp目录中,但是g ++和visual studio都给出了找不到文件/目录和“未定义”错误

这是我的main.cpp:

return

g ++ main.cpp给出:

catch

如果我使用“”而不是<>,则会出现此错误:

let a, b;
try {
  ([a, b] = await Promise.all([hash,token]));
} catch(e) {
  return res.status(400).json({status:false,msg:"error in promise"});
}

1 个答案:

答案 0 :(得分:0)

仅将其放在主文件旁边还不够。如您在第一种方法中看到的那样,将#include<>一起使用时,找不到它,这是因为(从here复制):

  

对于#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/)。那么您的第一种方法应该可以正常工作。