Closed
Description
Trying to build for Android with NDK 26 fails.
Steps to reproduce:
- force the use of NDK 26, e.g. with this local change in place (adjust path as needed):
diff --git a/wrappers/android/zxingcpp/build.gradle.kts b/wrappers/android/zxingcpp/build.gradle.kts
index 35e7e160..b35cebc9 100644
--- a/wrappers/android/zxingcpp/build.gradle.kts
+++ b/wrappers/android/zxingcpp/build.gradle.kts
@@ -8,6 +8,7 @@ android {
namespace = "com.zxingcpp"
// ndk version 25 is known to support c++20 (see #386)
// ndkVersion = "25.1.8937393"
+ ndkPath = "/home/michi/Android/Sdk/ndk/26.1.10909125/"
defaultConfig {
compileSdk = libs.versions.androidCompileSdk.get().toInt()
- try to build (again adjust path to Android Sdk as needed)
$ cd wrappers/android/
$ ANDROID_HOME=~/Android/Sdk ./gradlew :zxingcpp:assembleRelease
> Task :zxingcpp:buildCMakeRelWithDebInfo[arm64-v8a]
C/C++: ninja: Entering directory `/home/michi/development/git/zxing-cpp/wrappers/android/zxingcpp/.cxx/RelWithDebInfo/4z432e4r/arm64-v8a'
C/C++: /home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot -I/home/michi/development/git/zxing-cpp/core/src -I/home/michi/development/git/zxing-cpp/wrappers/android/zxingcpp/.cxx/RelWithDebInfo/4z432e4r/arm64-v8a/ZXing -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -g -DNDEBUG -fPIC -DZXING_BUILD_READERS -Wall -Wextra -Wno-missing-braces -Werror=undef -Werror=return-type -pthread -std=gnu++20 -MD -MT ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMReader.cpp.o -MF ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMReader.cpp.o.d -o ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMReader.cpp.o -c /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMReader.cpp
C/C++: In file included from /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMReader.cpp:11:
C/C++: In file included from /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.h:10:
C/C++: /home/michi/development/git/zxing-cpp/core/src/Generator.h:88:24: error: reference to 'default_sentinel_t' is ambiguous
C/C++: bool operator==(std::default_sentinel_t) const { return !_coroutine || _coroutine.done(); }
C/C++: ^
C/C++: /home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h:23:8: note: candidate found by name lookup is 'std::__ndk1::default_sentinel_t'
C/C++: struct default_sentinel_t { };
C/C++: ^
C/C++: /home/michi/development/git/zxing-cpp/core/src/Generator.h:15:9: note: candidate found by name lookup is 'std::default_sentinel_t'
C/C++: struct default_sentinel_t {};
C/C++: ^
C/C++: /home/michi/development/git/zxing-cpp/core/src/Generator.h:103:7: error: reference to 'default_sentinel_t' is ambiguous
C/C++: std::default_sentinel_t end() { return {}; }
C/C++: ^
C/C++: /home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h:23:8: note: candidate found by name lookup is 'std::__ndk1::default_sentinel_t'
C/C++: struct default_sentinel_t { };
C/C++: ^
C/C++: /home/michi/development/git/zxing-cpp/core/src/Generator.h:15:9: note: candidate found by name lookup is 'std::default_sentinel_t'
C/C++: struct default_sentinel_t {};
C/C++: ^
C/C++: 2 errors generated.
C/C++: /home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot -I/home/michi/development/git/zxing-cpp/core/src -I/home/michi/development/git/zxing-cpp/wrappers/android/zxingcpp/.cxx/RelWithDebInfo/4z432e4r/arm64-v8a/ZXing -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -g -DNDEBUG -fPIC -DZXING_BUILD_READERS -Wall -Wextra -Wno-missing-braces -Werror=undef -Werror=return-type -pthread -std=gnu++20 -MD -MT ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMDetector.cpp.o -MF ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMDetector.cpp.o.d -o ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMDetector.cpp.o -c /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.cpp
C/C++: In file included from /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.cpp:8:
C/C++: In file included from /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.h:10:
C/C++: /home/michi/development/git/zxing-cpp/core/src/Generator.h:88:24: error: reference to 'default_sentinel_t' is ambiguous
C/C++: bool operator==(std::default_sentinel_t) const { return !_coroutine || _coroutine.done(); }
C/C++: ^
C/C++: /home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h:23:8: note: candidate found by name lookup is 'std::__ndk1::default_sentinel_t'
C/C++: struct default_sentinel_t { };
C/C++: ^
C/C++: /home/michi/development/git/zxing-cpp/core/src/Generator.h:15:9: note: candidate found by name lookup is 'std::default_sentinel_t'
C/C++: struct default_sentinel_t {};
C/C++: ^
C/C++: /home/michi/development/git/zxing-cpp/core/src/Generator.h:103:7: error: reference to 'default_sentinel_t' is ambiguous
C/C++: std::default_sentinel_t end() { return {}; }
C/C++: ^
C/C++: /home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h:23:8: note: candidate found by name lookup is 'std::__ndk1::default_sentinel_t'
C/C++: struct default_sentinel_t { };
C/C++: ^
C/C++: /home/michi/development/git/zxing-cpp/core/src/Generator.h:15:9: note: candidate found by name lookup is 'std::default_sentinel_t'
C/C++: struct default_sentinel_t {};
C/C++: ^
C/C++: /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.cpp:872:5: warning: support for 'std::experimental::coroutine_traits' will be removed in Clang 17; use 'std::coroutine_traits' instead [-Wdeprecated-experimental-coroutine]
C/C++: co_yield std::move(res);
C/C++: ^
C/C++: /home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/experimental/coroutine:93:8: note: 'coroutine_traits' declared here
C/C++: struct coroutine_traits
C/C++: ^
C/C++: 1 warning and 2 errors generated.
> Task :zxingcpp:buildCMakeRelWithDebInfo[arm64-v8a] FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':zxingcpp:buildCMakeRelWithDebInfo[arm64-v8a]'.
> com.android.ide.common.process.ProcessException: ninja: Entering directory `/home/michi/development/git/zxing-cpp/wrappers/android/zxingcpp/.cxx/RelWithDebInfo/4z432e4r/arm64-v8a'
[1/32] Building C object ZXing/CMakeFiles/ZXing.dir/src/libzueci/zueci.c.o
[2/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/pdf417/PDFBoundingBox.cpp.o
[3/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMReader.cpp.o
FAILED: ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMReader.cpp.o
/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot -I/home/michi/development/git/zxing-cpp/core/src -I/home/michi/development/git/zxing-cpp/wrappers/android/zxingcpp/.cxx/RelWithDebInfo/4z432e4r/arm64-v8a/ZXing -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -g -DNDEBUG -fPIC -DZXING_BUILD_READERS -Wall -Wextra -Wno-missing-braces -Werror=undef -Werror=return-type -pthread -std=gnu++20 -MD -MT ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMReader.cpp.o -MF ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMReader.cpp.o.d -o ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMReader.cpp.o -c /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMReader.cpp
In file included from /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMReader.cpp:11:
In file included from /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.h:10:
/home/michi/development/git/zxing-cpp/core/src/Generator.h:88:24: error: reference to 'default_sentinel_t' is ambiguous
bool operator==(std::default_sentinel_t) const { return !_coroutine || _coroutine.done(); }
^
/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h:23:8: note: candidate found by name lookup is 'std::__ndk1::default_sentinel_t'
struct default_sentinel_t { };
^
/home/michi/development/git/zxing-cpp/core/src/Generator.h:15:9: note: candidate found by name lookup is 'std::default_sentinel_t'
struct default_sentinel_t {};
^
/home/michi/development/git/zxing-cpp/core/src/Generator.h:103:7: error: reference to 'default_sentinel_t' is ambiguous
std::default_sentinel_t end() { return {}; }
^
/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h:23:8: note: candidate found by name lookup is 'std::__ndk1::default_sentinel_t'
struct default_sentinel_t { };
^
/home/michi/development/git/zxing-cpp/core/src/Generator.h:15:9: note: candidate found by name lookup is 'std::default_sentinel_t'
struct default_sentinel_t {};
^
2 errors generated.
[4/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/pdf417/PDFBarcodeValue.cpp.o
[5/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/oned/ODRowReader.cpp.o
[6/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMDetector.cpp.o
FAILED: ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMDetector.cpp.o
/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot -I/home/michi/development/git/zxing-cpp/core/src -I/home/michi/development/git/zxing-cpp/wrappers/android/zxingcpp/.cxx/RelWithDebInfo/4z432e4r/arm64-v8a/ZXing -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -g -DNDEBUG -fPIC -DZXING_BUILD_READERS -Wall -Wextra -Wno-missing-braces -Werror=undef -Werror=return-type -pthread -std=gnu++20 -MD -MT ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMDetector.cpp.o -MF ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMDetector.cpp.o.d -o ZXing/CMakeFiles/ZXing.dir/src/datamatrix/DMDetector.cpp.o -c /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.cpp
In file included from /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.cpp:8:
In file included from /home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.h:10:
/home/michi/development/git/zxing-cpp/core/src/Generator.h:88:24: error: reference to 'default_sentinel_t' is ambiguous
bool operator==(std::default_sentinel_t) const { return !_coroutine || _coroutine.done(); }
^
/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h:23:8: note: candidate found by name lookup is 'std::__ndk1::default_sentinel_t'
struct default_sentinel_t { };
^
/home/michi/development/git/zxing-cpp/core/src/Generator.h:15:9: note: candidate found by name lookup is 'std::default_sentinel_t'
struct default_sentinel_t {};
^
/home/michi/development/git/zxing-cpp/core/src/Generator.h:103:7: error: reference to 'default_sentinel_t' is ambiguous
std::default_sentinel_t end() { return {}; }
^
/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h:23:8: note: candidate found by name lookup is 'std::__ndk1::default_sentinel_t'
struct default_sentinel_t { };
^
/home/michi/development/git/zxing-cpp/core/src/Generator.h:15:9: note: candidate found by name lookup is 'std::default_sentinel_t'
struct default_sentinel_t {};
^
/home/michi/development/git/zxing-cpp/core/src/datamatrix/DMDetector.cpp:872:5: warning: support for 'std::experimental::coroutine_traits' will be removed in Clang 17; use 'std::coroutine_traits' instead [-Wdeprecated-experimental-coroutine]
co_yield std::move(res);
^
/home/michi/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/experimental/coroutine:93:8: note: 'coroutine_traits' declared here
struct coroutine_traits
^
1 warning and 2 errors generated.
[7/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/oned/ODDataBarCommon.cpp.o
[8/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/oned/ODDataBarExpandedBitDecoder.cpp.o
[9/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/pdf417/PDFCodewordDecoder.cpp.o
[10/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/pdf417/PDFDetectionResult.cpp.o
[11/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/oned/ODDataBarReader.cpp.o
[12/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/oned/ODMultiUPCEANReader.cpp.o
[13/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/oned/ODDataBarExpandedReader.cpp.o
[14/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/pdf417/PDFDetectionResultColumn.cpp.o
[15/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/pdf417/PDFDecoder.cpp.o
[16/32] Building CXX object ZXing/CMakeFiles/ZXing.dir/src/oned/ODReader.cpp.o
ninja: build stopped: subcommand failed.
C++ build system [build] failed while executing:
/home/michi/Android/Sdk/cmake/3.22.1/bin/ninja \
-C \
/home/michi/development/git/zxing-cpp/wrappers/android/zxingcpp/.cxx/RelWithDebInfo/4z432e4r/arm64-v8a \
zxing_android
from /home/michi/development/git/zxing-cpp/wrappers/android/zxingcpp
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
BUILD FAILED in 3s
2 actionable tasks: 2 executed
Metadata
Metadata
Assignees
Labels
No labels