Ошибка связи с Cocotron - PullRequest
1 голос
/ 24 марта 2009

Я недавно создал интерфейс платформы linux для Cocotron и смог создать среду Foundation без ошибок.

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

/ Разработчик / Cocotron / 1.0 / Linux / i386 / Frameworks / Foundation.framework // libFoundation.so: неопределенная ссылка на `__gnu_objc_personality_v0 '

Я немного погуглил, но ничего полезного не нашел.

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

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

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

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

Ответы [ 2 ]

1 голос
/ 21 апреля 2009

Обновление: в репозитории 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

Спасибо Кристоферу Ллойду за приведенную выше информацию и за то, что отправили мне электронное письмо с исправлением.

1 голос
/ 24 марта 2009

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

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

...