символ (символы) не найден для ошибки архитектуры x86_64 при компиляции проекта Irrlicht в MacOS

Я скомпилировал и установил Irrlicht 1.8 на MacOSX 10.8. Затем я создал проект CodeBlocks, который использует Irrlicht. Теперь, когда я пытаюсь скомпилировать его, я получаю следующую ошибку:

    "_objc_msgSend_stret", referenced from:
      irr::CIrrDeviceMacOSX::setResize(int, int)in libIrrlicht.a(CIrrDeviceMacOSX.o)
      irr::CIrrDeviceMacOSX::createWindow()      in libIrrlicht.a(CIrrDeviceMacOSX.o)
      irr::CIrrDeviceMacOSX::CIrrDeviceMacOSX(irr::SIrrlichtCreationParameters const&)in libIrrlicht.a(CIrrDeviceMacOSX.o)
      irr::CIrrDeviceMacOSX::CIrrDeviceMacOSX(irr::SIrrlichtCreationParameters const&)in libIrrlicht.a(CIrrDeviceMacOSX.o)
      -[AppDelegate windowDidResize:] in libIrrlicht.a(AppDelegate.o)
      -[AppDelegate windowWillResize:toSize:] in libIrrlicht.a(AppDelegate.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

Я предполагаю, что проблема в том, как я скомпилировал Irrlicht. Вот как я это сделал:

  1. Используется это руководство для компиляции Irrlicht. При компиляции я получил 4 предупреждения об использовании устаревших функций, но решил, что это не может быть причиной моей проблемы.
  2. И это для установки.

Может ли кто-нибудь помочь мне с этим? Спасибо.

upd: я обнаружил, что эта ошибка возникает только при попытке вызвать любую функцию Irrlicht. С библиотекой, просто статически связанной с проектом, все работает нормально.


person oranJess    schedule 03.04.2013    source источник


Ответы (1)


У меня были такие ошибки с Irrlicht около двух лет назад в Mac OS X (10.6), но я действительно не помню, как я решил эту проблему. Я помню, что это было связано с компоновщиком (как и вы), поэтому мне пришлось указать файл libIrrlicht.a в разделе target Xcode и поместить

#pragma comment(lib, "libIrrlicht.a")

в коде сразу после включения (думаю, я поместил файл .a в каталог проекта для теста).


P.S.: Вы указали Code::Blocks, где искать библиотеку? Я помню, что в Xcode (3.2.x) тоже были разные разделы путей :)

P.P.S.: Вы уверены, что правильно составили Irrlicht? Возможно, вы скомпилировали его для i386, а не для x86_64 :P

person dezzeus    schedule 04.04.2013