Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用crystax NDK&;自动工具?_Android_Android Ndk_Autotools - Fatal编程技术网

Android 如何使用crystax NDK&;自动工具?

Android 如何使用crystax NDK&;自动工具?,android,android-ndk,autotools,Android,Android Ndk,Autotools,我的最终目标是能够使用gperftools在android环境中评测本机代码(C++) 我的环境/工具: ubuntu 14.04 crystax-ndk-10.2.1 gcc-4.8.4 GPERF工具-2.4 (一) 我按照此步骤制作了一个独立的工具链供以后使用: 命令: ./build/tools/make-standalone-toolchain.sh --system=linux-x86_64 --toolchain=arm-linux-androideabi-4.8 --pla

我的最终目标是能够使用gperftools在android环境中评测本机代码(C++)

我的环境/工具:

  • ubuntu 14.04
  • crystax-ndk-10.2.1
  • gcc-4.8.4
  • GPERF工具-2.4
(一) 我按照此步骤制作了一个独立的工具链供以后使用:

命令:

./build/tools/make-standalone-toolchain.sh --system=linux-x86_64 --toolchain=arm-linux-androideabi-4.8 --platform=android-8 --install-dir=$HOME/my-android-toolchain
(二) 谢天谢地,我找到了一个可以简化./configure工作的脚本:

只需稍加修改(放入gperftools-2.4文件夹):

(三) 然后我实际执行
/configure
并进行安装:

我将此脚本放在gperftools-2.4文件夹中并运行它:

cd gperftools-2.4
./android_configure.sh --enable-frame-pointers --prefix=$(pwd)
sudo make && make install
cd ..
结果: 上面给出了这个错误:

src/static_vars.cc: In function 'void tcmalloc::SetupAtForkLocksHandler()':
src/static_vars.cc:119:39: error: 'pthread_atfork' was not declared in this scope
                  CentralCacheUnlockAll); // child calls after fork
如果有人能就此给我一些建议,我将不胜感激

额外:
我知道有一个问题,但由于我使用CMake进行交叉编译,我不太确定如何处理Android.mk,所以目前我将尝试使用在linux构建中运行良好的gperftools。

这是因为
pthread\u atfork
仅在Android 5.0的Android libc(仿生)中出现。在CrystaX NDK中,并非所有API都被libcrystax取代,尤其是所有pthread_xxx API都驻留在libc中。因此,到目前为止,实现您想要的唯一方法是使用android-21作为最小平台,或者修改gperftools源代码,避免使用
pthread\u atfork

顺便说一句,我们正在努力将所有pthread_xxx API迁移到libcrystax中,因此我预计即使是早期的Android版本,所有此类API也将很快面世

src/static_vars.cc: In function 'void tcmalloc::SetupAtForkLocksHandler()':
src/static_vars.cc:119:39: error: 'pthread_atfork' was not declared in this scope
                  CentralCacheUnlockAll); // child calls after fork