3

我目前正在研究 JavaScript 并想为 JavaScript 设计单元测试我正在使用 google-JS-Test

http://code.google.com/p/google-js-test/

我已经下载了 gjstest-1.0.7

我已经安装了所有需要的先决条件。

http://code.google.com/p/google-js-test/wiki/Installing#Prerequisites

但是当我使用安装 google js 测试时

$ cd gjstest-1.0.7 
$ make

我收到以下错误

g++ -DHASH_NAMESPACE=__gnu_cxx -lrt -I. -I/usr/include/libxml2 -DDEFAULT_DATA_DIR=/usr/local/share/gjstest  -c -o gjstest/internal/cpp/v8_utils.o gjstest/internal/cpp/v8_utils.cc
gjstest/internal/cpp/v8_utils.cc:33: error: ‘v8::StackFrame’ has not been declared
gjstest/internal/cpp/v8_utils.cc:34: error: ‘v8::StackTrace’ has not been declared
gjstest/internal/cpp/v8_utils.cc: In function ‘void gjstest::ConvertToStringVector(const v8::Handle<v8::Value>&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)’:
gjstest/internal/cpp/v8_utils.cc:60: error: no matching function for call to ‘v8::Array::Get(uint32&)’
/usr/include/v8.h:1161: note: candidates are: v8::Local<v8::Value> v8::Object::Get(v8::Handle<v8::Value>)
make: *** [gjstest/internal/cpp/v8_utils.o] Error 1

好像 v8 没有正确安装

我已经使用类似的命令安装了 V8

sudo apt-get install libv8-2.0.3 
sudo apt-get install libv8-dbg 
sudo apt-get install libv8-dev 

也可以通过下载

svn checkout http://v8.googlecode.com/svn/trunk/ v8
cd v8
make dependencies
scons

但仍然收到这些错误

因此,如果有人安装和使用过 Google Js 或安装了 v8,请指导我如何解决这个问题。

我正在使用 Ubuntu 10.04。任何帮助将不胜感激。

4

1 回答 1

1

这确实是由于尝试针对非常旧版本的 libv8 构建 gjstest 造成的。

我按照此处的说明检查并在 ubuntu 10.04 上构建了一个更新的 libv8 :

svn checkout http://v8.googlecode.com/svn/trunk/ v8
cd v8
make depdendencies
make native library=shared
cp out/native/lib.target/libv8.so /usr/local/lib/libv8.so
cp include/v8.h /usr/local/include/v8.h
cp include/v8stdint.h /usr/local/include/v8stdint.h

之后 gjstest 编译并运行,没有进一步的惊喜。

于 2012-08-27T20:08:53.823 回答