[英]Compiler cannot find header file within header file in C++
我有一個由 yaml-cpp 庫提供的 header 文件,yaml.h
yaml.h:
#include "yaml-cpp/parser.h"
#include "yaml-cpp/emitter.h"
#include "yaml-cpp/emitterstyle.h"
#include "yaml-cpp/stlemitter.h"
#include "yaml-cpp/exceptions.h"
#include "yaml-cpp/node/node.h"
#include "yaml-cpp/node/impl.h"
#include "yaml-cpp/node/convert.h"
#include "yaml-cpp/node/iterator.h"
#include "yaml-cpp/node/detail/impl.h"
#include "yaml-cpp/node/parse.h"
#include "yaml-cpp/node/emit.h"
主.cpp
#include "./lib/yaml-cpp/include/yaml.h"
int main()
{
YAML::Node config = YAML::LoadFile("config.yaml");
return 0;
}
所有 header 文件都在同一目錄(/home/user/application/libs/yaml-cpp/include)
中,但編譯器無法找到 parser.h 和所有其他包含。 為什么會這樣,我該如何解決?
我試過使用g++ -I/home/user/application/libs/yaml-cpp/include main.cpp
但這沒有用。
我在 linux 環境。 當 header 文件保存在 /usr/lib64 中時一切正常,但我不允許為這個項目這樣做。
當你有一個文件yaml.h
,它本身包含其他文件,如下所示:
#include "yaml-cpp/parser.h"
那么預期的目錄布局如下:
somewhere/
|
+-- yaml.h
|
+-- yaml-cpp/
|
+-- parser.h
您應該將-Isomewhere
傳遞給您的編譯器,並在您自己的源代碼中像這樣使用 header 文件yaml.h
:
#include <yaml.h>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.