2016-06-01 1 views
0

Я новичок в Objective-C и Xcode.Xcode не может найти символы для архитектуры x86_64

Я пытаюсь разобрать файл YAML из моего файла .mm. Я решил использовать библиотеку yaml-cpp для выполнения этой задачи.

Я загрузил source и добавил все файлы заголовков в свой проект. Я могу включить файл заголовка yaml.h в мой файл .mm и он успешно создает.

#include <yaml-cpp/yaml.h> 
... 

Когда я пытаюсь выполнить sample code, со следующим утверждением:

std::ifstream yamlReader("vmap3_styleattrs.yaml"); 
YAML::Parser yamlParser(yamlReader); 

я получаю следующее сообщение об ошибке:

Undefined symbols for architecture x86_64: 
    "YAML::Parser::Parser(std::__1::basic_istream<char, std::__1::char_traits<char> >&)", referenced from: 
    -[StyleSheetTests testGeoCSSTestAPIPrototype] in StyleSheetTests.o 
    "YAML::Parser::~Parser()", referenced from: 
    -[StyleSheetTests testGeoCSSTestAPIPrototype] in StyleSheetTests.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Самое смешное, что скомпилированный в первый раз , но с каждой последовательной попытки с тех пор сборка завершилась неудачей с сообщением выше.

Мне интересно, связано ли это с моей ситуацией this question, хотя я не уверен.

Буду признателен за любые входы.

+0

Что вы делали с исходными файлами? – immibis

+0

@immibis, я физически скопировал исходные файлы в каталог проекта и ссылался на них в своем исходном коде. Напр. '#include ' не выдает ошибку, так как я скопировал заголовочный файл * yaml.h * в папку * yaml-cpp * в моей директории проектов. –

ответ

0

This screenshot иллюстрирует ответ, описанный ниже:

Я думаю, что вы можете исправить с помощью этого метода.

Project Setting -> Build Settings -> Apple LLVM 7.0 Language - C++ -> C++ Standard Library And Change libc++ (LLVM C++ standard library with C++11 support) to libstdc++ (GNU C++ standard library)

+0

Это изменение сломало мою сборку. Спасибо за попытку. –

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