0

Mac OS X 10.7.2 で libjingle のビルドに失敗しました。$path_to_swtoolkit/hammer.shlibjingle の README に従って実行すると、次のような出力が 得られました。

MBP17:talk rei25$ ~/Desktop/swtoolkit/hammer.sh
scons: Reading SConscript files ...

scons: warning: The build_dir keyword has been deprecated; use the variant_dir keyword instead.
File "/Users/rei25/Desktop/swtoolkit/site_scons/site_init.py", line 203, in BuildEnvironmentSConscripts
scons: done reading SConscript files.
scons: Building targets ...
________Compiling build/dbg/obj/third_party/expat-2.0.1/lib/xmlparse.o
third_party/expat-2.0.1/lib/xmlparse.c:6:48: error: string.h: No such file or directory
third_party/expat-2.0.1/lib/xmlparse.c:7:20: error: assert.h: No such file or directory
In file included from third_party/expat-2.0.1/lib/xmlparse.c:24:
third_party/expat-2.0.1/lib/expat.h:17:20: error: stdlib.h: No such file or directory
cc1: warnings being treated as errors
third_party/expat-2.0.1/lib/xmlparse.c: In function 'parserCreate':
third_party/expat-2.0.1/lib/xmlparse.c:719: warning: implicit declaration of function 'malloc'
third_party/expat-2.0.1/lib/xmlparse.c:719: warning: incompatible implicit declaration of built-in function 'malloc'
third_party/expat-2.0.1/lib/xmlparse.c:723: error: 'realloc' undeclared (first use in this function)
third_party/expat-2.0.1/lib/xmlparse.c:723: error: (Each undeclared identifier is reported only once
third_party/expat-2.0.1/lib/xmlparse.c:723: error: for each function it appears in.)
third_party/expat-2.0.1/lib/xmlparse.c:724: error: 'free' undeclared (first use in this function)
third_party/expat-2.0.1/lib/xmlparse.c: In function 'parserInit':
third_party/expat-2.0.1/lib/xmlparse.c:848: warning: implicit declaration of function 'memset'
third_party/expat-2.0.1/lib/xmlparse.c:848: warning: incompatible implicit declaration of built-in function 'memset'
third_party/expat-2.0.1/lib/xmlparse.c: In function 'XML_Parse':
third_party/expat-2.0.1/lib/xmlparse.c:1543: warning: implicit declaration of function 'memcpy'
third_party/expat-2.0.1/lib/xmlparse.c:1543: warning: incompatible implicit declaration of built-in function 'memcpy'
third_party/expat-2.0.1/lib/xmlparse.c: In function 'XML_GetBuffer':
third_party/expat-2.0.1/lib/xmlparse.c:1627: warning: implicit declaration of function 'memmove'
third_party/expat-2.0.1/lib/xmlparse.c:1627: warning: incompatible implicit declaration of built-in function 'memmove'
third_party/expat-2.0.1/lib/xmlparse.c:1656: warning: incompatible implicit declaration of built-in function 'memcpy'
third_party/expat-2.0.1/lib/xmlparse.c: In function 'XML_GetParsingStatus':
third_party/expat-2.0.1/lib/xmlparse.c:1750: warning: implicit declaration of function 'assert'
third_party/expat-2.0.1/lib/xmlparse.c: In function 'storeRawNames':
third_party/expat-2.0.1/lib/xmlparse.c:2009: warning: incompatible implicit declaration of built-in function 'memcpy'
third_party/expat-2.0.1/lib/xmlparse.c: In function 'doContent':
third_party/expat-2.0.1/lib/xmlparse.c:2424: warning: implicit declaration of function 'memcmp'
third_party/expat-2.0.1/lib/xmlparse.c: In function 'storeAtts':
third_party/expat-2.0.1/lib/xmlparse.c:2922: warning: incompatible implicit declaration of built-in function 'memcpy'
third_party/expat-2.0.1/lib/xmlparse.c:2931: warning: incompatible implicit declaration of built-in function 'memcpy'
third_party/expat-2.0.1/lib/xmlparse.c: In function 'addBinding':
third_party/expat-2.0.1/lib/xmlparse.c:3039: warning: incompatible implicit declaration of built-in function 'memcpy'
third_party/expat-2.0.1/lib/xmlparse.c: In function 'lookup':
third_party/expat-2.0.1/lib/xmlparse.c:5871: warning: incompatible implicit declaration of built-in function 'memset'
third_party/expat-2.0.1/lib/xmlparse.c:5898: warning: incompatible implicit declaration of built-in function 'memset'
third_party/expat-2.0.1/lib/xmlparse.c:5927: warning: incompatible implicit declaration of built-in function 'memset'
third_party/expat-2.0.1/lib/xmlparse.c: In function 'poolGrow':
third_party/expat-2.0.1/lib/xmlparse.c:6112: warning: incompatible implicit declaration of built-in function 'memcpy'
third_party/expat-2.0.1/lib/xmlparse.c:6148: warning: incompatible implicit declaration of built-in function 'memcpy'
scons: *** [build/dbg/obj/third_party/expat-2.0.1/lib/xmlparse.o] Error 1
scons: building terminated because of errors.

私の Mac に などがstring.hあることは確かです。また、ディレクトリに移動して実行assert.hしようとし、成功しました。この問題について Web を検索しましたが、役に立たないようです。それで、もしあなたが理由を知っているなら、私に教えてくれてありがとう!cdexpat-2.0.1./configuremake

PS 私の問題は次のようなものです:

4

3 に答える 3

5

私はライオンと同じ問題を抱えていました。wayon が指摘したように、開発者は特定の SDK バージョン「/Developer/SDKs/MacOSX10.5.sdk」をハードコーディングしたようです。投稿の時点で、最新バージョンは 10.7 で、Xcode 4 に付属しています。ビルドに他にもいくつかの問題があったことを修正した後、それらが OS X に関連しているのか、それともビルド スクリプトが壊れているだけなのかはわかりません。 libジングル用。

これは、私が見つけた他の問題を修正するパッチlibjingle patchです。また、おそらく、stackoverflow swtoolkit fixで swtoolkit を修正する必要があります。

単体テストがパスするかどうかは確認していませんが、少なくともコンパイルできるようになりました。

于 2011-11-26T00:09:00.650 に答える
2

私も同じ問題を抱えていました。

私の場合、この問題は、ディレクトリ'talk'(ソースツリーの最上位)にあるmain.sconsファイルの誤ったCCFLAGSが原因で発生していました。'-isysroot'引数に間違ったパスがありました:

CCFLAGS = ['-arch'、'i386'、'-isysroot'、'/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator4.0.sdk '、

'-fasm-blocks'、]、

私のMacにはiPhoneSimulator4.0.sdkはなく、iPhoneSimulator4.3.sdkとiPhoneSimulator5.0.sdkだけがありました。

だから、私は4.0から5.0に置き換えて、次のようになりました。

CCFLAGS = ['-arch'、'i386'、'-isysroot'、'/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator5.0.sdk '、'-fasm-blocks'、]、

それは私に役立ちました。

この問題を解決するには、次のことを試してください。

  1. /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/フォルダーにあるsdkのバージョンを確認してください
  2. ソースツリーの一番上にあるmain.sconsファイルの-isysroot引数に適切なパスを設定します(私の場合はilibjingle / gtalk / libjingle-0.5 / talkです)。

次に、$ path_to_swtoolkit/hammer.shを再度実行してみてください。

お役に立てば幸いです。

于 2011-11-25T18:58:57.463 に答える
2

次のインクルードを main.scons ファイルに追加してみてください。

main.scons:

... // more than 300 lines and the you will find the mac_env section

mac_env.Append(
  CPPDEFINES = [
    'OSX',
  ],
  CCFLAGS = [
    '-m32',
    '-arch', 'i386',
    '-isysroot', '/Developer/SDKs/MacOSX10.5.sdk',
    '-fasm-blocks',
    '-I/usr/include', <--- Add this line and this will tell to scons where is your includes
...
于 2012-01-28T08:09:45.017 に答える