我正在尝试从 this 存储库编译并生成共享库。该过程由
ndk-build
命令启动。我在编译阶段遇到错误:
启动编译的ndk命令是:
C:\sdks\Android\Sdk\ndk\25.1.8937393\build\ndk-build --output-sync=none NDK_PROJECT_PATH=./ NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk NDK_OUT=./build/ NDK_LIBS_OUT=./jniLibs -j 4
输出:
...
[arm64-v8a] Compile : xml2 <= encoding.c
[arm64-v8a] Compile : xml2 <= error.c
[arm64-v8a] Compile : xml2 <= parserInternals.c
././libxml2-2.9.9/encoding.c:2397:12: error: variable 'writtentot' set but not used [-Werror,-Wunused-but-set-variable]
size_t writtentot = 0;
^
././libxml2-2.9.9/encoding.c:2570:9: error: variable 'writtentot' set but not used [-Werror,-Wunused-but-set-variable]
int writtentot = 0;
^
././libxml2-2.9.9/encoding.c:2572:9: error: variable 'output' set but not used [-Werror,-Wunused-but-set-variable]
int output = 0;
^
3 errors generated.
make: *** [C:/sdks/Android/Sdk/ndk/25.1.8937393/build/../build/core/build-binary.mk:422: build//local/arm64-v8a/objs/xml2/./libxml2-2.9.9/encoding.o] Error 1
make: *** Waiting for unfinished jobs....
我了解该错误:警告设置为被视为错误。
我尝试通过将其添加到我的
application.mk
文件中来禁用此行为:
APP_CFLAGS += -O3
APP_CFLAGS += -Wno-unused-but-set-variable
APP_CPPFLAGS += -O3
APP_CPPFLAGS += -Wno-unused-but-set-variable
但什么都没有改变。
如何禁用 ndk-build 传递给编译器的标志以及导致此错误的标志?
我通过将此行添加到文件 cflags.mk 来修复此问题:
LOCAL_CFLAGS += -Wno-unused-but-set-variable