- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 C/C++ 和 Android NDK 的初学者,我在尝试创建原生库时遇到了问题。我的代码在 CDT 上使用 MinGW 编译,但是当我在 JNI 文件上编写相同的代码时,出现错误。
我的代码是:
int n = 7;
int positions[n];
int final_order[n];
memcpy(positions, final_order,sizeof(final_order));
插件显示:
Invalid arguments 'Candidates are: void * memcpy(void *, const void *, ?)'
这是来自 CDT 上 MinGW 的 header :
_CRTIMP void* __cdecl __MINGW_NOTHROW memcpy (void*, const void*, size_t);
这是来自 Android NDK 的 header :
extern void* memcpy(void *, const void *, size_t);
最佳答案
使用 Eclipse 进行 NDK 开发时存在一个已知的索引问题。
在这里阅读:https://code.google.com/p/android/issues/detail?id=33788
在底部附近有一个我自己使用的合理解决方法:
What we want is to use the Android GCC toolchain but change the actual tools and modify the discovery options so that the include paths and symbols are correct.
Go into C/C++ Buid \ Tool Chain editor
Make sure Android GCC is the selected toolchain and Android Builder is the selected builder.
Click on "Select Tools" Select "Allow all changes" Remove the Android GCC Compiler Add "GCC C Compiler" and "GCC C++ Compiler" so that we can index both c and cpp headers.
If you would look at "Paths and Symbols" you would see we have both GNU C and GNU C++ languages, but of course the built-in include paths are wrong. luckily there is a fix for that.
Go into C/C++ Build \ Discovery Options Change Discovery profiles scope to "Configuration-wide" Make sure the Discovery profile is using "AndroidPerProjectProfile" and make sure both checkboxes are checked.
然后我必须在 Project Properties -> C/C++ General -> Paths and Symbols
下手动添加我自己的包含目录和定义
值得注意的是,您的代码编译 良好。如果愿意,您可以关闭索引,但如果您仍然想要索引的优势,则必须解决这个问题。
关于android - 将 C 程序迁移到 Android NDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13924184/
我想使用 ndk 构建一个 3rd 方库 avahi。 avahi 已经有 android 端口(带有有效的 Android.mk)。 我做了什么: 我已经成功创建了一个项目并将所有源代码复制到 jn
由于不再需要Android NDK,因此我尝试将其卸载。在Eclipse中找到的路径似乎已损坏。我应该如何清理这个烂摊子?我尝试了brew,但它说未安装NDK。 (它甚至告诉我未安装SDK!也许不是通
我是 Android Studio 和 Android NDK 的新手。我正在尝试使用 android NDK 为类分配编译一个简单的 hello.c 程序。我已按照以下项目说明进行操作,但出现错误:
当我尝试执行 NDK 构建时,我收到以下错误列表...有人知道吗? encies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/Fr
我正在使用 android-ndk-profiler-3.1 为我的项目进行 NDK 分析。我在 Android.mk 中进行了如下更改... LOCAL_PATH := $(call my-dir)
我需要使用 cutils 库和头文件在我的 NDK 项目中实现 ashmem,但我在我的系统中找不到与 cutils 相关的任何内容。它位于何处或从何处获得? 最佳答案 Android“cutils”
我有两个独立的项目,一个项目用于构建 Boost 库,另一个项目从构建的 boost 库中调用。 Boost 项目编译良好并生成 libboost.a 文件。我想要实现的是将此库添加到我的其他 NDK
我在ndk-build clean上遇到以下错误 mo@mo-Toshiba ~/Workspace/AndroidApp/jni/android_programming_driver $ ndk-b
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在尝试使用 NDK(又使用开放 SLES)在 Android 上创建一个基于流的音频应用程序。我已经完成了基本的流媒体设置。我需要知道 Android 中如何处理欠载(或重载)?错误回调是如何实现
我的 Application.mk 设置为构建 arm 以及 x86 共享库: APP_ABI :- armeabi-v7a x86 我有预建的 openssl 静态库: libcrypto_v7a.
我的 $NDK_HOME 文件夹包含标准库的不同实现。 qdii@nomada /opt/android-ndk/platforms $ ls -l total 24 drwxr-xr-x 5 roo
如何安装android-ndk。我已经为 ndk 设置了路径,但在执行“ndk-build”命令时仍然出现错误。 fya 我正在使用 Windows 操作系统。 最佳答案 它对我有用: 打开命令提示符
构建 Android-ndk 时出现以下错误 请帮助我。 Cygwin.bat @echo off set IS_UNIX= set DEV_ROOT=C:/iliu-Android-NDK-Fibo
我开始使用 android ndk (r8c),为此我安装了新版本的 Ubuntu 12.10 (32bit) 问题,无论我尝试构建什么,我都会遇到让我发疯的怪异错误...... ~/workspac
我正在尝试向我的 Android 项目添加 Crashlytics 支持,该项目使用 NDK 和 gradle CMake。这意味着我的共享项目需要符号。所以如果我想为发布版本创建符号,我会调用 gr
我想知道是否有人设法使用 Android NDK(r8d) 的工具链构建了新的 SDL2。 SDL2 似乎非常接近发布(从昨天开始,它不再是“正在 build 中:http://hg.libsdl.o
我试图在“ndk-build”过程中禁用所有警告,以编译与 Android 上的 JNI 一起使用的 CPP 代码。 我正在使用 LOCAL_CFLAGS := -Wno-error没有成功。 有任何
谁能告诉我如何在android(ndk-build)中建立C-ares库 最佳答案 这是使用NDK standalone toolchain将其构建为ARMv7的静态库的方法: export NDK=
我正在尝试从我的 native 代码中读取一个简单的文本文件。 我把file.txt放在assets文件夹下 在我的事件中,我正在创建 Assets 管理器:assetManager = getAss
我是一名优秀的程序员,十分优秀!