2009-03-24 7 views
1

私は最近、Cocotron用のLinuxプラットフォームインターフェースを構築し、エラーなしでFoundationフレームワークを構築することができました。Cocotronとのリンクエラー

私のObjective-Cプロジェクトをリンクするときしかし、私はリンカエラーを取得:

/Developer/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 

私は基礎プロジェクトはそれがないライブラリにリンクする必要があること、または多分それがリンクされていることを感じていますいくつかのライブラリの間違ったバージョンに。確信はないけど。

ご協力いただければ幸いです。

答えて

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を指定してください。

すなわち、上記の情報のためChristopher Lloydからsudo ./install.sh Linux i386

おかげで、と私に修正を電子メールで送信するため。

1

どのコンパイラを使用していますか?コククトロンからのもの、私は望みますか? thisディスカッションをご覧ください。

__gnu_objc_personality_v0は、間違ったコンパイラ(-xオプションを付けないでC++コードにgcc)を指定すると発生します。いくつかのスイッチをセットアップして、g ++にObj-Cコードをコンパイルするように指示してください。

+0

ありがとうございます - 私はCocotronコンパイラを使用しています。 –