2009-11-26 52 views

回答

110

V8易於構建,並且不附帶來自Mozilla獨立Javascript解釋器的Java VM開銷。幸運的是,V8附帶了構建控制檯的代碼。下面是如何構建這個:

 
$> svn co http://v8.googlecode.com/svn/trunk v8-trunk 
... 
$> cd v8-trunk 
$> scons 
$> g++ ./samples/shell.cc -o v8-shell -I include libv8.a 

現在,我們有一個名爲v8-shell獨立的二進制文件。

運行控制檯:

 
$> ./v8-shell 
V8 version 2.0.2 
> var x = 10; 
> x 
10 
> function foo(x) { return x * x; } 
> foo 
function foo(x) { return x * x; } 
> quit() 

在命令行中執行JavaScript:

 
$> ./v8-shell -e 'print("10*10 = " + 10*10)' 
10*10 = 100 

還有更多的功能都在幫助文檔:

 
$> ./v8-shell --help 
Usage: 
... 
+9

謝謝爲小費和明確的指示。我必須在ubuntu 10.04下的'g ++'命令中添加'-lpthread'選項。 – intuited

+1

在Ubuntu上,我的scons失敗了,但是運行sudo apt-get install libc6-dev-i386解決了這個問題。 –

+2

,如果你在x86_64上執行:'scons arch = x64',直到其固定在主幹上 http://code.google.com/p/v8/issues/detail?id=429#c1 – EdH

57

要構建開發者控制檯,而不是示例的'shell'玩具應用程序,請將以下命令複製粘貼到您的終端。

sudo apt-get install subversion scons libreadline-dev 
svn co http://v8.googlecode.com/svn/trunk v8 
cd v8/ 
scons console=readline d8 

這些指令適用於具有「通用」內核的Ubuntu/Debian。對於其他發行版,您需要將apt-get命令替換爲任何可用的軟件包工具。在64位系統上,您可能需要添加arch=x64console=readline選項啓用readline系統,使其感覺更像一個標準外殼。

更完整的文檔在這裏: http://code.google.com/apis/v8/build.html


注:

enter image description here

參見:Building v8 with GYP

+9

我不得不添加'arch = x64'來構建64位ubuntu。 – projectshave

+0

console = readline選項有什麼作用? – Hugh

+0

@Hugh:它啓用readline系統;這是允許你使用向上的箭頭來獲得前面的命令,以及其他細節。 – bukzor

22

在Mac OS X是一定要安裝brew。然後只需運行命令(sudo) brew install v8,這取決於您的機器,這可能需要一些時間。要啓動V8控制檯,只需運行v8 - Voilà!

提示:要退出控制檯,只需運行quit(),不要忘記括號!

+1

或者只需按Ctrl-D鍵退出:) – Dogbert

+0

或者按Ctrl-C鍵殺死它 –

+0

你可以自己構建v8,它很簡單,使用brew只是太麻煩。 – b01

3

如果您使用ArchLinux,您可以使用pacman -S v8來安裝它。 然後使用d8在您的shell中啓動它。 享受它。

+0

這似乎是在AUR上,所以不能與pacman一起安裝。 – Colliot

41

如何通過命令行使用node.js運行V8 Javascript?

node.js使用v8作爲引擎,並在其上添加了很多功能。


例如,在Mac OSX,如果你已經安裝了Homebrew,根本的問題:

$ brew install node 
    $ node 
    > 
+1

當談到JavaScript控制檯時,恕我直言,node.js是新的事實標準。它使用v8,並且可能是用於此的最佳選擇。 – Tracker1

1

如果你打算嵌入V8,然後通過各種手段建立它與「D8」玩。

另一方面,如果您不打算擴展V8或將其視爲可選項,則可以使用Node.JS.不要打擾純V8。 Node.js具有真正豐富的I/O,擴展,庫(如Perl CPAN,Python Eggs,Ruby Gems)和社區。

+0

您不需要使用node.js,它只是一個包裝和額外的依賴關係。 – b01

4

在按照您的系統的構建說明(Google's V8 Build Docs)之後;

[v8 directory]$ cd out/native 
[v8 directory]$ ./shell (sample shell) 
[v8 directory]$ ./d8 (console: dumb) 

我在.bash_profile中創建了一個別名,以方便調用shell。在CLI(在一個新的終端或shell - 重裝你的bash配置文件)

alias v8='/Volumes/Dev/GitHub/v8/out/native/shell' 

打字V8產生了V8外殼。 JavaScript在命令提示符處! :)

4

我認爲這可能已經改變。我read the manual和建設V8這樣的:

[email protected]$ svn co http://v8.googlecode.com/svn/trunk v8-trunk 
[email protected]$ cd v8-trunk 
[email protected]$ make dependencies 
[email protected]$ make ia32.release 

添加export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.release我的.bashrc

[email protected] ~ $ source ~/.bashrc 
[email protected] ~ $ d8 A_tic_tac_toe_Tomek.js < A-small-practice.in 

(與谷歌編程挑戰賽從aditsu和A-small-practice.in的JavaScript)

+2

充滿迴應的頁面和您最不重視的內容包含我需要的最終建議。 –