2009-09-02 5 views
2

Я пытаюсь скомпилировать пакет, который использует стороннюю библиотеку. Я давно это работаю, но теперь он просто отказывается ссылаться. Вот пример из ошибок:Ошибка xcode linker

"lwpp::GlobalBase<char const*()(char const*)>::globPtr", referenced from: 
    __ZN4lwpp10GlobalBaseIFPKcS2_EE7globPtrE$non_lazy_ptr in main.o 
    __ZN4lwpp10GlobalBaseIFPKcS2_EE7globPtrE$non_lazy_ptr in license-2998A499.o 
    ... 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

Проект третьей стороны (lwpp) включен в качестве суб-проекта. Я щелкнул мышью и перетащил его в объекты Targets> plugin_name> Link Binary With Libraries, но он по-прежнему не работает. Если я импортирую исходные файлы для lwpp, эти ошибки ссылок все исчезнут. У меня полная потеря.

ответ

1

По-видимому, lwpp::GlobalBase< char const*()(char const*) > ::globPtr должен быть определен. Либо вы должны определить его самостоятельно в исходном файле, либо если он уже определен в библиотеке, вам может потребоваться объявить его как extern в main.cpp.

+0

Это определено в библиотеке. Как я уже сказал, у меня было это раньше, но теперь xcode/gcc решил, что он не свяжется. У меня был друг, попробовав его, и для него он соединяется и компилируется на своей машине. Я пытаюсь использовать один и тот же файл проекта на своей машине, и я получаю ошибки компоновщика. Это не имеет никакого смысла. –

+0

Я просто угадываю здесь, но проблема может быть в создании шаблона ... Попробуйте явно создать экземпляр GlobalBase Dima