为了查看使用 O3D 的页面,我似乎需要某种 Chrome/Chromium/Firefox 插件。但是,似乎在 Chrom(ium) 中运行该插件的唯一方法是我自己建造了整个东西。
有没有什么办法可以得到预编译的二进制文件?
为什么 Windows 版本的 Firefox 出厂时就预装了对 O3D 内容的支持,而 Ubuntu 版本自带的 Firefox 却不支持 O3D 内容呢?
答案1
在花了相当多的时间思考这个问题之后,我决定还是继续编译它。为了让那些将来想尝试的人更容易,我准备了一个小的(是的,没错!)Bash 脚本来自动化整个过程。
简洁版本:如果你只是想让我给你一个运行命令,那么这里是:
wget http://files.quickmediasolutions.com/install_o3d ; chmod 755 install_o3d ; ./install_o3d
注意:为了安装某些软件包,系统将提示您输入 root 密码。
该脚本可能需要几分钟才能运行(甚至长达一小时),但最终您应该会得到一个(或两个)包/tmp/o3d/o3d_root/o3d/build/out/Debug/
。然后可以安装它们以支持 O3D。
长版本:Google 似乎没有提供预编译的二进制文件(至少我能找到),所以我访问了这页面并获取了构建它的说明,然后开始构建 Bash 脚本来执行操作。
首先,脚本会确保你的系统上有正确的软件包。它还会检查你是否提供了路径作为参数,用于存储存储库(/tmp/o3d
如果未指定参数,则使用)。然后,它会检查 Google 的存储库depot_tools
并将其添加到PATH
(但不是永久的)。然后,脚本会gclient
从不同的存储库中获取所有代码(相信我,它会下载一个很多- 比如超过 500MB 的东西)。不幸的是,文件夹DEPS
中的文件o3d_root/o3d
似乎有错误的修订号,breakpad
所以我的脚本即时修补它并重新同步。
然后就开始了漫长而繁琐的插件构建过程。根据系统速度,这个过程可能需要 10 到 60 分钟。
该过程完成后,您将在 中找到包o3d_root/o3d/build/out/Debug/
。请注意,构建过程可能报告错误并停止。但据我所知,可以忽略该错误,因为此时软件包已经构建完成。从那里您可以简单地安装该软件包。
以下是我的完整脚本:
#!/bin/bash
# check all dependencies
echo "Checking dependencies..."
echo "[Note: you may be prompted for your root password]"
sudo apt-get install python gcc g++ libxt-dev libgtk2.0-dev libgl1-mesa-dev libglib2.0-dev libglu1-mesa-dev libx11-dev fakeroot libnss3-dev libgconf2-dev libcurl4-gnutls-dev libgnome-keyring-dev libdbus-glib-1-dev subversion dpkg-dev build-essential debhelper cdbs
# check to see if a path was specified
if test $# -lt 1 ; then
INSTALLPATH="/tmp/o3d"
echo "No path specified, assuming '$INSTALLPATH'..."
else
INSTALLPATH="$1"
fi
# make that directory
mkdir -p $INSTALLPATH
cd $INSTALLPATH
# checkout the depot_tools
echo "Checking out depot tools..."
svn co http://src.chromium.org/svn/trunk/tools/depot_tools
# export the path to these tools
export PATH="$PATH":`pwd`/depot_tools
mkdir o3d_root
cd o3d_root
# now download the code
echo "Downloading code..."
gclient config http://src.chromium.org/svn/trunk/o3d
gclient sync
# apply our patch to the DEPS file
echo "Applying patch to DEPS file..."
echo -e "13c13\n< \"breakpad_rev\": \"604\",\n---\n> \"breakpad_rev\": \"605\"," >DEPS.patch
patch o3d/DEPS DEPS.patch
# re-sync the code
echo "Re-syncing..."
gclient sync
# build it
echo "Building o3d plugin..."
cd o3d
./gypbuild
echo "Done!"