使用NDK构建项目失败
Failure to build a project using NDK
这是我第一次尝试使用NDK,我一直在构建这个项目。我正在尝试使用Android的屏幕截图记录程序中使用的库从我的屏幕上读取数据。我知道我需要使用LibGUI,我已经从我的手机拉。然而,每当我编译时,我都会得到以下错误消息:
C:/Users/Kevin/Desktop/ScreenCapture//jni/main.cpp:2:34: fatal error: gui/ISurfaceComposer.h: No such file or directory
这是奇怪的,考虑到我有libgui。所以包括在内。
我的主文件是什么样子的:
#include <stdio.h>
#include <gui/ISurfaceComposer.h>
int main() {
printf("Started!");
return 0;
}
我的Android。Mk看起来像:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libgui-prebuilt
LOCAL_SRC_FILES := libgui.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := screencapture
LOCAL_SRC_FILES := main.cpp
LOCAL_SHARED_LIBRARIES := libgui-prebuilt
include $(BUILD_EXECUTABLE)
我有主文件和libgui。在同一个文件夹
main.cpp:2:34:致命错误:gui/ISurfaceComposer.h: No such file or directory
你的错误信息表明编译器无法找到头文件,但你尝试的解决方案是从手机提供一个共享对象(so) 库。
库可能在链接时提供帮助,但在链接之前必须成功编译,要做到这一点,您将不得不获得丢失的头文件(可能来自AOSP源代码,作为源代码,它将无法在手机上找到),或者通过从收集的线索推断其内容来重新创建它。不幸的是,通常不可能只从AOSP中取出一个内部标头,因为它可能依赖于许多其他标头。
如果内部组件之间的私有接口在Android版本之间发生变化,那么针对私有系统内部的链接也会带来程序崩溃的风险。
(通常我也会提到,你不太可能能够记录一个屏幕与NDK在它的正常使用,使共享库链接到一个应用程序进程,但你的Android。mk似乎表明你正在构建一个可执行文件- 可能工作,如果你能成功地构建它,你运行它作为一个用户有足够的权限,如adb的shell
userid或使用根hack)
为模块截图添加一行:
LOCAL_C_INCLUDES := $(LOCAL_PATH)/
如果你没有gui文件夹,你需要复制&粘贴includes headers *.h到文件夹jni/gui。对于ndk总是有这样的要求…
或第二种情况-使用此源的其他位置:
LOCAL_LDLIBS := -L/full_path_to_source_gui/gui/
- 我必须构建我的项目 2 次,第一次失败,因为它无法打开库
- 我的快速排序在对预排序的项目进行排序时失败,如何改进?
- 在 macOS 上的 CLion 中导入 Bazel 项目失败
- VS 2017 构建工具失败,出现错误 MSB4019:找不到导入的项目"D:Microsoft.Cpp.Default.props"
- MSBuidel - 将资源文件添加到项目后静态库编译失败
- C++单元测试项目 LoadLibrary 失败,出现"序号未找到"错误
- Unity webGL - MacOS 上的构建项目失败
- 链接在XLNT.TEST项目上失败,具有10个未经介绍的外部链接:
- 项目生成失败:"gcroot.h This document is opened by another project"
- Aruco建筑项目失败
- 与iOS项目上的C 库链接失败
- 在项目c++中包含本地路径,但生成失败
- C++项目生成失败
- 通过终端和编译创建项目文件失败,但通过Qt Creator IDE工作正常
- 构建最小的Qt控制台项目失败,出现神秘的链接器错误LNK2001:未解析的外部符号
- Visual Studio 2010 Express创建项目失败
- 代码使用cmake干净地构建,当作为外部项目添加时失败
- 使用GCC编译时,CMake生成的Ninja项目失败
- <int> 具有初始值设定项列表的 QVector 失败,并显示 3 个项目
- 在eclipse ubuntu上构建opencv项目失败