C ++ Filt - ваш друг, он разобьет эти имена, чтобы показать вам, чего не хватает:
> c++filt __ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_12AmbientSoundEb
Scripting::create_squirrel_instance(SQVM*, Scripting::AmbientSound*, bool)
Кажется, что первая строка сверху указывает на то, что не удается найти определение метода create_squirrel_instace из класса Scripting.
Таким образом, порядок представления библиотек в g ++ (это компилятор, используемый на Mac) очень важен. Итак, взгляните на результаты сборки и посмотрите, сможете ли вы найти строку, где связаны библиотеки:
Это должно выглядеть так:
g++ <STUFF> -l<lib1> -l<lib2> etc.
Я переформатировал вывод abovre, чтобы он был читабельным:
В тексте я заменяю
/Users/Thomas/Documents/iPhone Dev Projects./SuperTux
с <DIR>
для удобства чтения:
Целая куча библиотек не используется, потому что они имеют неправильную архитектуру:
ld warning: in <DIR>/SuperTux/libSDLiPhoneOS.a,
file is not of required architecture
ld warning: in <DIR>/SuperTux/libphysfsdevice.a,
file is not of required architecture
ld warning: in <DIR>/SuperTux/liboggdevice.a,
file is not of required architecture
ld warning: in <DIR>/SuperTux/libSDL_imagedevice.a,
file is not of required architecture
ld warning: in <DIR>/SuperTux/libvorbisdevice.a,
file is not of required architecture
ld warning: in <DIR>/SuperTux/libvorbisencdevice.a,
file is not of required architecture
ld warning: in <DIR>/SuperTux/libvorbisfiledevice.a,
file is not of required architecture
ld warning: in <DIR>/SuperTux/libminiswigdevice.a,
file is not of required architecture
ld warning: in <DIR>/SuperTux/libSDL_mixer.a,
file is not of required architecture
ld warning: in <DIR>/SuperTux/libsquirreldevice.a,
file is not of required architecture
Тогда у вас также есть предупреждение, на которое следует обратить внимание:
ld warning: __ZTVSt11range_error
has different visibility
(hidden) in <DIR>/SuperTux/libstdc++-static.a(stdexcept.o)
and (default) in <DIR>/SuperTux/build/SuperTux.build/Debug iphonesimulator/SuperTux.build/Objects-normal/i386/font.o
ld warning: __ZTISt11range_error
has different visibility
(hidden) in <DIR>/SuperTux/libstdc++-static.a(stdexcept.o)
and (default) in <DIR>/SuperTux/build/SuperTux.build/Debug iphonesimulator/SuperTux.build/Objects-normal/i386/font.o
ld warning: __ZTSSt11range_error
has different visibility
(hidden) in <DIR>/SuperTux/libstdc++-static.a(stdexcept.o)
and (default) in <DIR>/SuperTux/build/SuperTux.build/Debug iphonesimulator/SuperTux.build/Objects-normal/i386/font.o
ld warning: __ZTISt11range_error
has different visibility
(hidden) in <DIR>/SuperTux/libstdc++-static.a(functexcept.o)
and (default) in <DIR>/SuperTux/build/SuperTux.build/Debug iphonesimulator/SuperTux.build/Objects-normal/i386/font.o
ld warning: __ZTVSt11range_error
has different visibility
(hidden) in <DIR>/SuperTux/libstdc++-static.a(functexcept.o)
and (default) in <DIR>/SuperTux/build/SuperTux.build/Debug iphonesimulator/SuperTux.build/Objects-normal/i386/font.o
ld warning: __ZTSSt11range_error
has different visibility
(hidden) in <DIR>/SuperTux/libstdc++-static.a(functexcept.o)
and (default) in <DIR>/SuperTux/build/SuperTux.build/Debug iphonesimulator/SuperTux.build/Objects-normal/i386/font.o