0

V8で本当に小さな例をコンパイルするのに苦労しています..

cpp プログラムは次のとおりです。

#include "v8.h"

int main()
{
     v8::HandleScope handle_scope;

     return 0;
}

コンパイル行: g++ -I/home/lterje/git/tengine/Externals/v8/include /home/lterje/git/tengine/Externals/v8/out/ia32.release/obj.target/tools/gyp/libv8_snapshot.a test.cpp -o テスト -lpthread

私が得ているエラー:

/tmp/ccHYtJuE.o: In function `main':
test.cpp:(.text+0x11): undefined reference to `v8::HandleScope::HandleScope()'
test.cpp:(.text+0x22): undefined reference to `v8::HandleScope::~HandleScope()'
collect2: error: ld returned 1 exit status

ベース、スナップショット、およびスナップショットなしのライブラリ ファイルの違いは何ですか? それぞれとリンクしようとしましたが、どれも機能しません:/

4

2 に答える 2

2

最初に、私の下手な英語でごめんなさいと言わなければなりません。.a ファイルを自分のプロジェクトにリンクしました。libv8_snapshot.a の依存関係が指定されていないため、ld エラーが発生します。

これは私のコンパイル文です:

g++ -o xxxxx -I ~v8/out/native/obj.target/tools/gyp/libv8_{base.native,snapshot}.a ~v8/out/native/obj.target/third_party/icu/libicu{data, i18n,snapshot}.a ~v8/out/native/obj.target/icudata/third_party/icu/linux/icudt46_dat.o -lrt -lpthread

libv8_base.native.a libv8_snapshot.a は icu と icudt46 ファイルに依存しており、UNIX の clock_time に関するいくつかの関数は "rt" に依存していると思うので、"-lrt" を追加します

皆さんのお役に立てば幸いです〜中国人として、私の英語で申し訳ありません。

于 2013-10-30T12:08:50.887 に答える
0

コンパイル行:
g ++ -I / home / lterje / git / tengine / Externals / v8 / include /home/lterje/git/tengine/Externals/v8/out/ia32.release/obj.target/tools/gyp/libv8_snapshot.a test.cpp -o test -lpthread

このリンク行は正しくありません。代わりにこれを試してください:

g++ -I/home/lterje/git/tengine/Externals/v8/include \
  test.cpp -o test \
  /home/.../obj.target/tools/gyp/libv8_snapshot.a \
  -lpthread

これを読んで、順序が重要である理由を理解してください。

于 2013-02-28T02:47:13.577 に答える