Ошибки компиляции при создании проекта C++ с помощью Android NDK с использованием CMake и Ninja на платформе Windows.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибки компиляции при создании проекта C++ с помощью Android NDK с использованием CMake и Ninja на платформе Windows.

Сообщение Anonymous »

edit:
  • Вывод команды с опцией -H показывает, что включены правильные
    заголовки, но ошибки предполагают что типы
    такие как int8_t и uint8_t не найдены.
2.пробовал использовать только пути, которые не содержат пробелов, но без изменений в ошибке


Похоже, что может возникнуть проблема с порядком или расположением включаемых путей или конкретный заголовок мешает правильному включение определений stdint.h.
Я постоянно сталкиваюсь с ошибками компиляции при создании проекта C++ с помощью Android NDK с использованием CMake и Ninja на платформе Windows. Проект включает в себя несколько исходных файлов C++, которые требуют надлежащей интеграции с набором инструментов Android. Несмотря на попытки решить проблему, ошибки сохраняются, в основном связанные с невозможностью найти определения стандартных типов, таких как int8_t, int16_t и т. д., из заголовка .
Сведения о среде:
Операционная система: Windows 10
Версия Android NDK: 23.1.7779620
Toolchain Файл: D:/Resmi Mems/ndk/23.1.7779620/build/cmake/android.toolchain.cmake
ABI: Arm64-v8a
Платформа: android-21
Система сборки: CMake и Ninja
Стандарт C++: gnu++14
Использованная команда:
Remove-Item -Recurse -Force build
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="D:/Resmi Mems/ndk/23.1.7779620/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -G Ninja
cmake --build build --verbose

Сообщения об ошибках:
Основные ошибки, возникающие во время компиляции, связаны с заголовком , что указывает на то, что стандартные целочисленные типы, такие как как int8_t, int16_t, int32_t и т. д. не найдены в глобальном пространстве имен.
:\Users\acer\StudioProjects\apptest\app\New folder\ecg_app\csv_processor\csv_processor\new_csv_processor\native>cmake -B build -S . -G Ninja
-- Configuring done (0.1s)
-- Generating done (0.1s)
-- Build files have been written to: C:/Users/acer/StudioProjects/apptest/app/New folder/ecg_app/csv_processor/csv_processor/new_csv_processor/native/build

C:\Users\acer\StudioProjects\apptest\app\New folder\ecg_app\csv_processor\csv_processor\new_csv_processor\native>cmake --build build
[1/8] Building CXX object CMakeFiles/native-lib.dir/src/cwt.cpp.o
FAILED: CMakeFiles/native-lib.dir/src/cwt.cpp.o
"D:\Resmi Mems\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe" --target=aarch64-none-linux-android21 --sysroot="D:/Resmi Mems/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64/sysroot" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Dnative_lib_EXPORTS -I"D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include" -I"D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++abi/include" -I"D:/Resmi Mems/ndk/23.1.7779620/sources/android/support/include" -I"D:/Resmi Mems/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/android" -I"C:/Users/acer/StudioProjects/apptest/app/New folder/ecg_app/csv_processor/csv_processor/new_csv_processor/native/include" -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fexceptions -frtti -stdlib=libc++ -O2 -g -DNDEBUG -std=gnu++17 -fPIC -MD -MT CMakeFiles/native-lib.dir/src/cwt.cpp.o -MF CMakeFiles\native-lib.dir\src\cwt.cpp.o.d -o CMakeFiles/native-lib.dir/src/cwt.cpp.o -c "C:/Users/acer/StudioProjects/apptest/app/New folder/ecg_app/csv_processor/csv_processor/new_csv_processor/native/src/cwt.cpp"
In file included from C:/Users/acer/StudioProjects/apptest/app/New folder/ecg_app/csv_processor/csv_processor/new_csv_processor/native/src/cwt.cpp:2:
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:152:8: error: no member named 'int8_t' in the global namespace
using::int8_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:153:8: error: no member named 'int16_t' in the global namespace
using::int16_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:154:8: error: no member named 'int32_t' in the global namespace
using::int32_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:155:8: error: no member named 'int64_t' in the global namespace
using::int64_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:157:8: error: no member named 'uint8_t' in the global namespace
using::uint8_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:158:8: error: no member named 'uint16_t' in the global namespace
using::uint16_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:159:8: error: no member named 'uint32_t' in the global namespace
using::uint32_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:160:8: error: no member named 'uint64_t' in the global namespace
using::uint64_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:162:8: error: no member named 'int_least8_t' in the global namespace
using::int_least8_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:163:8: error: no member named 'int_least16_t' in the global namespace
using::int_least16_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:164:8: error: no member named 'int_least32_t' in the global namespace
using::int_least32_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:165:8: error: no member named 'int_least64_t' in the global namespace
using::int_least64_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:167:8: error: no member named 'uint_least8_t' in the global namespace
using::uint_least8_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:168:8: error: no member named 'uint_least16_t' in the global namespace
using::uint_least16_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:169:8: error: no member named 'uint_least32_t' in the global namespace
using::uint_least32_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:170:8: error: no member named 'uint_least64_t' in the global namespace
using::uint_least64_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:172:8: error: no member named 'int_fast8_t' in the global namespace
using::int_fast8_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:173:8: error: no member named 'int_fast16_t' in the global namespace
using::int_fast16_t;
~~^
D:/Resmi Mems/ndk/23.1.7779620/sources/cxx-stl/llvm-libc++/include\cstdint:174:8: error: no member named 'int_fast32_t' in the global namespace
using::int_fast32_t;
~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.


Подробнее здесь: https://stackoverflow.com/questions/786 ... -cmake-and
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»