我开始在使用相当复杂的程序的NDK中发现一些有趣的错误:
#include <stdio.h>
#include <iostream>
int main( int argc, char **argv ) {
return 0;
}
>call c:\android-ndk-r9\ndk-build.cmd
"Compile++ thumb : test <= test.cpp
In file included from C:/workspace/c++11_test//jni/test.cpp:11:
In file included
我正尝试在我的项目中使用STLPort,但当我按照INSTALL.unixes中的说明进行操作时,我得到了编译错误。
我先运行./configure,然后运行make,输出如下所示。我在Ubuntu上使用make 3.81和gcc 4.6.1。
编辑:我尝试添加--with-extra-cxxflags="-std=c++ox",但得到了一组不同的更小的错误,如下所示。
In file included from ../stlport/memory:45:0,
from reachable.cc:16:
../stlport/stl/_shar
我使用了一个名为stlport的库,它重新定义了std名称空间,如下所示:
# if defined (_STLP_REDEFINE_STD)
/* We redefine "std" to "stlport", so that user code may use std:: transparently */
# undef std
# define std STLPORT
# else
正因为如此,在我的代码中,当我尝试使用std::something时,它会被替换为_STLP::something。
如果我注释掉#define std STLPO
我在运行$ANDROID_NDK_ROOT/ndk-build时收到了这个警告。Android.mk在下面。
$ $ANDROID_NDK_ROOT/ndk-build
WARNING:/Users/jwalton/Android-CryptoPP/jni/Android.mk:prng:
non-system libraries in linker flags: -lcryptopp -lstlport_shared
This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRA
我试过为android.I构建密码库,我使用了本教程的这一部分。
$ cat build-all-android.sh
#!/bin/bash
for arch in armeabi armeabi-v7a armeabi-v7a-hard arm64-v8a mips mips64 x86 x86_64
do
. ./setenv-android.sh $arch stlport
if [ "$?" -eq "0" ]; then
make -f GNUmakefile-cross distclean
mak
我正在尝试在Snow Leopard下构建最新版本的stlprot。
我所做的编译步骤:
./configure
sudo make && make check
make && make check运行良好。问题出现了,如果我调用'sudo make install',我会得到一个错误:
/bin/sh: /usr/local/include/stlport: No such file or directory
Can't create /usr/local/include/stlport
make[1]: *** [install-he
一直在想,现在很困惑。
当app_stl = stlport_static或stlport_shared在Application.mk文件中设置时,您正在尝试构建库的共享和静态版本。效果是什么,为什么你会在你的android应用程序中有一个特定的案例(见下文)?
假设我有
Case1: APP_STL=stlport_static and include $(BUILD_SHARED_LIBRARY)
Case2: APP_STL=stlport_static and include $(BUILD_STATIC_LIBRARY)
Case3: APP_STL=stlport_share
我正在尝试使用NDK和C++编写一个简单的安卓应用程序。具体地说,我想使用NDK的最新版本(r7)中包含的gnustdc++。JNI库已经像C一样编译和工作得很好,但是现在我正在尝试引入C++,我遇到了一些问题。
我已经将${NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/include/添加到我的项目的包含路径中,并且解析了#includes内联。但是,尝试实际使用任何STL类(例如vector)都会导致Symbol 'vector' could not be resolved。
在我尝试用<cstdlib>替换#include之前