Problem using yaml-cpp on OS X
所以我在编译使用yaml-cpp
的应用程序时遇到了麻烦
我在源文件中包含" yaml.h "(就像yaml-cpp Wiki中的示例一样),但是当我尝试编译应用程序时,出现以下错误:
1 2 3 | g++ -c -o entityresourcemanager.o entityresourcemanager.cpp entityresourcemanager.cpp:2:18: error: yaml.h: No such file or directory make: *** [entityresourcemanager.o] Error 1 |
我的makefile看起来像这样:
1 2 3 4 5 6 7 8 | CC = g++ CFLAGS = -Wall APPNAME = game UNAME = uname OBJECTS := $(patsubst %.cpp,%.o,$(wildcard *.cpp)) mac: $(OBJECTS) $(CC) `pkg-config --cflags --libs sdl` `pkg-config --cflags --libs yaml-cpp` $(CFLAGS) -o $(APPNAME) $(OBJECTS) |
pkg-config --cflags --libs yaml-cpp返回:
1 | -I/usr/local/include/yaml-cpp -L/usr/local/lib -lyaml-cpp |
和yaml.h实际上位于/ usr / local / include / yaml-cpp
知道我能做什么吗?
谢谢
您的默认目标是" mac ",并且您具有如何构建它的规则。它取决于目标文件,您没有任何规则来构建它们,因此make使用其隐式规则。这些规则就是这样做的:
1 | g++ -c -o entityresourcemanager.o entityresourcemanager.cpp |
您可以看到这里没有
最简单的解决方法是全局更改CPPFLAGS和LDFLAGS值:
1 2 3 4 5 6 7 8 9 10 | YAML_CFLAGS := $(shell pkg-config --cflags yaml-cpp) YAML_LDFLAGS := $(shell pkg-config --libs yaml-cpp) SDL_CFLAGS := $(shell pkg-config --cflags sdl) SDL_LDFLAGS := $(shell pkg-config --libs sdl) CPPFLAGS += $(YAML_CFLAGS) $(SDL_CFLAGS) LDFLAGS += $(YAML_LDFLAGS) $(SDL_LDFLAGS) mac: $(OBJECTS) $(CXX) -o $(APPNAME) $(OBJECTS) $(LDFLAGS) |
编辑:
之后
您是否不匹配包含目录?
而不是