2010-02-04 2 views
2

Так у меня возникают проблемы компиляция моего приложения, которое использует YAML-CPPПроблемы с использованием YAML-CPP на OS X

я в том числе «yaml.h» в моих исходных файлах (так же, как в примерах YAML-каст вики), но когда я пытаюсь компиляции приложения, я получаю следующее сообщение об ошибке:

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 выглядит следующим образом:

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-конфигурации --cflags --libs yaml- cpp возвращает:

-I/usr/local/include/yaml-cpp -L/usr/local/lib -lyaml-cpp 

и yaml.h действительно находится в/USR/местные/включить/YAML-CPP

Любая идея, что я мог сделать?

Благодаря

ответ

1

Ваша цель по умолчанию «макинтош» и вы править, как строить. Это зависит от объектных файлов, и у вас нет правил, как их создавать, поэтому make использует свои неявные правила. Эти правила делают только что:

g++ -c -o entityresourcemanager.o entityresourcemanager.cpp 

не Как вы можете видеть не существует -I/usr/local/... части здесь.

Самый простой способ исправить это изменить CPPFLAGS и LDFLAGS значение глобально:

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) 

CPPFLAGS значение используется неявных правил, которые создают объектные файлы из CPP файлов, так что теперь компилятор должен найти заголовки YAML.

Edit: LDFLAGS, вероятно, должны пойти после OBJECTS

0

Вы не соответствуете включаемому каталогу?

-I/usr/local/include

вместо

-I/usr/local/include/yaml-cpp

 Смежные вопросы

  • Нет связанных вопросов^_^