2

x86 Android アーキテクチャ用の cocos2dx プロジェクトをビルドしようとしていますが、コンパイルしようとすると次のエラーが発生します。

./obj/local/x86/curl.a(hostip.o):(.text.alarmfunc+0x21): undefined reference to `siglongjmp'
./obj/local/x86/curl.a(hostip.o): In function `Curl_resolv_timeout':
(.text.Curl_resolv_timeout+0x156): undefined reference to `sigsetjmp'

エラーをグーグルで検索すると、グーグルコードで問題19851として報告されていることがわかりました。彼らはまだ修正を行っていませんが、変更された libc.so および sched.h ファイルを追加することを提案しました。これを試してみましたが、うまくいきませんでした。

誰でもこれを修正する方法を教えてもらえますか。

4

3 に答える 3

1

次のコードを .c または .cpp モジュールのいずれかに追加してみてください。

#if __i386 && (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <setjmp.h>
#ifdef __cplusplus
extern "C" {
    void siglongjmp(jmp_buf env, int val);
    int sigsetjmp(jmp_buf env, int savemask);
}
#endif
void siglongjmp(jmp_buf env, int val)
{
    longjmp(env, val);
}
int sigsetjmp(jmp_buf env, int savemask)
{
    return setjmp(env);
}
#endif
于 2013-03-09T12:18:11.867 に答える
0

問題19851に対応して添付されたlibc.soを最新バージョンのndkにコピーすることで問題を修正しました。ndkr8を使用していて、libc.soファイルをndkr8dにコピーすると、問題が修正されました。

于 2013-02-11T11:13:49.620 に答える
0

Android NDK ページに移動し、ダウンロードとインストールの手順に従います。

https://developer.android.com/tools/sdk/ndk/index.html

私はOSXを使用しています.android-ndk-r10e-darwin-x86_64.binはセットアップのエラーを修正しました。

于 2015-05-28T00:18:26.827 に答える