2009-03-24 3 views
1

Недавно я построил интерфейс платформы Linux для Cocotron и смог создать фреймворк без ошибок.Ошибка связи с Cocotron

Однако при связывании мой Objective-C проект, я получаю сообщение об ошибке компоновщика:

/Developer/Cocotron/1.0/Linux/i386/Frameworks/Foundation.framework//libFoundation.so: неопределенная ссылка на ` __gnu_objc_personality_v0 '

Я сделал немного поискового запроса, но не нашел ничего полезного.

Вот моя команда л.д. линия (немного упрощен для удобства чтения):

Ld /Users/me/MyProject/build/Linux/Release/ENCLAnalyzer normal i386 
    cd /Users/me/MyProject 
    /Developer/Cocotron/1.0/Linux/i386/gcc-4.3.1/bin/i386-ubuntu-linux-gcc -arch i386 
    -L/Users/me/MyProject/build/Linux/Release 
    -L../../frameworks/Shared/FFmpeg/Linux/lib 
    -L/Developer/Cocotron/1.0/PlatformInterfaces/i386-ubuntu-linux/lib 
    -L/Developer/Cocotron/1.0/PlatformInterfaces/i386-ubuntu-linux/intel/mkl/9.0/lib/32 
    -L/Developer/Cocotron/1.0/PlatformInterfaces/i386-ubuntu-linux/intel/ipp/5.1/ia32/sharedlib 
    -L/Users/me/frameworks/Shared/FFmpeg/Linux/lib 

    -F/Users/me/MyProject/build/Linux/Release 
    -F/Users/me/frameworks/Shared 
    -F/Developer/Cocotron/1.0/Linux/i386/Frameworks 
    -F/Users/me/frameworks/OtherProject/Linux 

    -filelist "/Users/me/MyProject/build/Linux/MyProject.build/Release/MyProject Linux.build/Objects-normal/i386/MyProject.LinkFileList" 

    -Wl,-rpath-link,/Developer/Cocotron/1.0/PlatformInterfaces/i386-ubuntu-linux/lib 
    -Wl,-rpath-link,../../frameworks/Shared/FFmpeg/Linux/lib 
    -Wl,-rpath-link,/Developer/Cocotron/1.0/PlatformInterfaces/i386-ubuntu-linux/intel/ipp/5.1/ia32/sharedlib 
    -Wl,-rpath-link,/Developer/Cocotron/1.0/PlatformInterfaces/i386-ubuntu-linux/intel/mkl/9.0/lib/32 
    -Wl,-rpath-link,/Developer/Cocotron/1.0/Linux/i386/Frameworks/Foundation.framework 

    -framework Foundation -framework MyFramework1 -framework MyFramework2 -framework MyFramework3 
    -o /Users/me/MyProject/build/Linux/Release/MyProject 

У меня есть ощущение, что проект фундамента необходимо связать с библиотекой, что это не так, или что может быть, это соединение к неправильной версии некоторой библиотеки. Но я не уверен.

Любая помощь будет высоко оценена.

ответ

1

Обновление: В репозитории Cocotron произошли некоторые обновления компилятора, которые исправили эту проблему. Установочный скрипт был обновлен, чтобы забрать их и новая версия здесь:

http://cocotron.org/Tools/Downloads/InstallCDT-2009-04-17.zip

Перед использованием этого обязательно удалить /Developer/Cocotron/1.0/Downloads/gcc-4.3. 1.tar.bz2 или он не будет выбирать в новый источник. Обязательно укажите Linux i386 при переустановке.

т.е. sudo ./install.sh Linux i386

Благодаря Christopher Lloyd для вышеуказанной информации, а также для отправки по электронной почте мне исправить.

1

Какой у вас компилятор? Надеюсь, из Кококтрона? Взгляните на обсуждение this.

__gnu_objc_personality_v0 возникает при указании неверного компилятора (скажем, gcc для кода C++ без опции -x). Попробуйте настроить некоторые ключи, чтобы сообщить g ++, что вы хотите скомпилировать код Obj-C.

+0

Спасибо - я использую компилятор Cocotron. –