В настоящее время я работаю над проектом C ++ с использованием Xcode 8, и я получаю эту ошибку:
Undefined symbols for architecture x86_64:
"liblas::Reader::Reader(std::__1::basic_istream<char, std::__1::char_traits<char> >&)", referenced from:
_main in main.o
"liblas::Reader::~Reader()", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Я скомпилировал boost, liblas и т. Д. Он также включен в мой файл cmakelists.txt, и папка, в которую он включен, указана в разделе «Пути поиска в фреймворке», а также в «Пути поиска по заголовкам». Мой компилятор по умолчанию для Xcode 8 Apple LLVM 8.0. Моя цель развертывания — 10.11. Допустимые архитектуры: x86_64 и i386.
Вот код, который пытается использовать libLAS (file.las содержит жестко заданный путь к моему las-файлу). Этот код был извлечен непосредственно из учебника по libLAS c ++ Вот:
std::ifstream ifs;
ifs.open("file.las", std::ios::in | std::ios::binary);
liblas::ReaderFactory f;
liblas::Reader reader = f.CreateWithStream(ifs);
Если я закомментирую строку liblas::Reader reader = f.CreateWithStream(ifs);
, код прекрасно компилируется и создает допустимый исполняемый файл. С этой строкой здесь выдает ошибку. Однако мне нужно иметь возможность читать файлы LAS в этом проекте, поэтому мне нужно попытаться заставить Reader работать.
Итак, мои вопросы:
Есть ли лучший способ отладить это?
Это очевидная ошибка, которую я пропускаю?
Это проблема с библиотекой? (libLAS)
Что я могу сделать, чтобы заставить это работать?
Спасибо всем заранее!
Задача ещё не решена.
Других решений пока нет …