0

http://fbredex.com/的 Redex 页面中有一个非常好的说明。

我按照说明进行操作,但有两个步骤出现问题。

1.我对第一个命令的运行没有问题(我的操作系统是Ubuntu)

sudo apt-get install \
    g++ \
    automake \
    autoconf \
    autoconf-archive \
    libtool \
    libboost-all-dev \
    libevent-dev \
    libdouble-conversion-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    liblz4-dev \
    liblzma-dev \
    libsnappy-dev \
    make \
    zlib1g-dev \
    binutils-dev \
    libjemalloc-dev \
    libssl-dev \
    libiberty-dev
  1. 我在笔记本电脑的某个地方克隆了愚蠢的回购

  2. 我去目录$ cd android/projects/folly/folly/

  3. 我跑了git submodule update --init,但什么也没发生。我什至在其中运行此命令,$ cd android/projects/folly/但也没有任何反应。

  4. 我跑autoreconf -ivf && ./configure && make && make install。似乎有效,因为我看到过程大约需要一两分钟,并且打印出很多 og 消息。

  5. 我将示例 .apk 文件复制/粘贴到我的桌面并运行redex ~/Desktop/my_android_app.apk -o ~/Desktop/my_android_app-redexed.apk. 但是,我在终端上收到此消息。

    未找到命令“redex”,您的意思是:来自包“redet”(universe)的命令“redet”redex:找不到命令

当我在/home/hesam/android/projects/folly/follyor中时,我运行了上面的命令/home/hesam/android/projects/folly/。但我得到相同的输出。

更新

我克隆了 Redex repo 并遵循了 Bert 的指示。它有效,我可以通过运行看到正在发生的事情git submodule update --init。所以感谢伯特。但是,我在autoreconf -ivf && ./configure && make && make install命令结束时出错。

请查看以下输出:

Making all in unit
make[3]: Entering directory `/home/hesam/android/projects/redex/test/unit'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/hesam/android/projects/redex/test/unit'
make[2]: Leaving directory `/home/hesam/android/projects/redex/test'
make[1]: Leaving directory `/home/hesam/android/projects/redex'
Making install in third-party/folly/folly
make[1]: Entering directory `/home/hesam/android/projects/redex/third-party/folly/folly'
Making install in .
make[2]: Entering directory `/home/hesam/android/projects/redex/third-party/folly/folly'
make[3]: Entering directory `/home/hesam/android/projects/redex/third-party/folly/folly'
 /bin/mkdir -p '/usr/local/lib'
 /bin/bash ./libtool   --mode=install /usr/bin/install -c   libfolly.la libfollybenchmark.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libfolly.so.57.0.0 /usr/local/lib/libfolly.so.57.0.0
/usr/bin/install: cannot create regular file '/usr/local/lib/libfolly.so.57.0.0': Permission denied
make[3]: *** [install-libLTLIBRARIES] Error 1
make[3]: Leaving directory `/home/hesam/android/projects/redex/third-party/folly/folly'
make[2]: *** [install-am] Error 2
make[2]: Leaving directory `/home/hesam/android/projects/redex/third-party/folly/folly'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/hesam/android/projects/redex/third-party/folly/folly'
make: *** [install-recursive] Error 1
hesam: redex (master) $ redex ~/Desktop/my_android_app.apk -o ~/Desktop/my_android_app-redexed.apk 
No command 'redex' found, did you mean:
 Command 'redet' from package 'redet' (universe)
redex: command not found
hesam: redex (master) $ 
4

2 回答 2

1

您不需要单独克隆愚蠢;它作为 redex 的子模块包含在内。只是做: git clone https://github.com/facebook/redex.git cd redex git submodule update --init 然后根据说明配置/制作。

于 2016-04-15T22:58:58.193 回答
1

您在fbredex中看到的说明与您在Github redex页面中看到的说明有所不同。请按照 Github 页面上所说的makeinstall

autoreconf -ivf && ./configure && make
sudo make install

关于我上面的问题,Redex 团队的一位开发人员打电话给我,几分钟后他发现并解决了问题。他更新了 Redex 页面上的常见问题解答部分,您可以在此处查看。由于那里没有解释,我复制/粘贴了他在聊天中所说的话。

因此,作为一种优化,运行时链接器实际上不再遍历所有内容以查找库它使用由 ldconfig 生成的缓存文件

更新

我忘了提到你必须ANDROID_SDK在你的 PATH 中。我的.profile. 更改后不要忘记source它。~/android/sdk是我的 Android SDK 目录的路径。

export ANDROID_HOME=~/android/sdk
export ANDROID_SDK=${ANDROID_HOME}
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
于 2016-04-19T17:51:29.730 回答