Я работаю над плагином Flutter, который зависит от пакета ICU. В настоящее время я застрял с связыванием библиотек ICU с моим проектом, используя Cmake . Хотя я пытался перенести фактический путь к ICU4C DIR по -разному, Cmake постоянно относится к тем частям пакета ICU, которые связаны с моим текущим Android NDK.
my cmakelists.txt - это следующее: < /p>
cmake_minimum_required(VERSION 3.10)
cmake_policy(SET CMP0074 NEW)
project(uuid_library VERSION 0.0.1 LANGUAGES C)
add_library(uuid SHARED
"uuid.c"
)
set_target_properties(uuid PROPERTIES
OUTPUT_NAME "uuid"
)
set(CMAKE_PREFIX_PATH "/usr/local/opt/icu4c")
set(ICU_ROOT "/usr/local/opt/icu4c")
set(ICU_DEBUG ON)
message(STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
message(STATUS "ICU_ROOT: ${ICU_ROOT}")
find_package(ICU COMPONENTS i18n uc)
message(STATUS "ICU_FOUND: ${ICU_FOUND}")
message(STATUS "ICU_INCLUDE_DIRS: ${ICU_INCLUDE_DIRS}")
message(STATUS "ICU_LIBRARIES: ${ICU_LIBRARIES}")
if (ICU_FOUND)
include_directories(${ICU_INCLUDE_DIRS})
target_link_libraries(uuid PRIVATE ICU::i18n ICU::uc)
else()
message(FATAL_ERROR "ICU libraries not found")
endif()
target_compile_definitions(uuid PUBLIC DART_SHARED_LIB)
if (ANDROID)
# Support Android 15 16k page size.
target_link_options(uuid PRIVATE "-Wl,-z,max-page-size=16384")
endif()
< /code>
Теперь я получаю следующую ошибку при попытке создать пример проекта в зависимости от моего плагина: < /p>
Launching lib/main.dart on sdk gphone x86 64 in debug mode...
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':uuid:configureCMakeDebug[arm64-v8a]'.
> [CXX1429] error when building with cmake using /
/src/CMakeLists.txt: -- The C compiler identification is Clang 14.0.6
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users//Library/Android/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- CMAKE_PREFIX_PATH: /usr/local/opt/icu4c
-- ICU_ROOT: /usr/local/opt/icu4c
-- Found the following ICU libraries:
-- i18n (required)
-- uc (required)
-- --------FindICU.cmake search debug--------
-- ICU binary path search order: /usr/local/opt/icu4c
-- ICU include path search order: /usr/local/opt/icu4c
-- ICU library path search order: /usr/local/opt/icu4c
-- ----------------
-- Failed to find all ICU components (missing: ICU_LIBRARY) (found version "71.1")
-- --------FindICU.cmake results debug--------
-- ICU found: FALSE
-- ICU_VERSION number: 71.1
-- ICU_ROOT directory: /usr/local/opt/icu4c
-- ICU_INCLUDE_DIR directory: /Users//Library/Android/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include
-- ICU_LIBRARIES:
-- gencnval program: ICU_GENCNVAL_EXECUTABLE=/usr/local/opt/icu4c/bin/gencnval
-- icuinfo program: ICU_ICUINFO_EXECUTABLE=/usr/local/opt/icu4c/bin/icuinfo
-- genbrk program: ICU_GENBRK_EXECUTABLE=/usr/local/opt/icu4c/bin/genbrk
-- icu-config program: ICU_ICU-CONFIG_EXECUTABLE=/usr/local/opt/icu4c/bin/icu-config
-- genrb program: ICU_GENRB_EXECUTABLE=/usr/local/opt/icu4c/bin/genrb
-- gendict program: ICU_GENDICT_EXECUTABLE=/usr/local/opt/icu4c/bin/gendict
-- derb program: ICU_DERB_EXECUTABLE=/usr/local/opt/icu4c/bin/derb
-- pkgdata program: ICU_PKGDATA_EXECUTABLE=/usr/local/opt/icu4c/bin/pkgdata
-- uconv program: ICU_UCONV_EXECUTABLE=/usr/local/opt/icu4c/bin/uconv
-- gencfu program: ICU_GENCFU_EXECUTABLE=/usr/local/opt/icu4c/bin/gencfu
-- makeconv program: ICU_MAKECONV_EXECUTABLE=/usr/local/opt/icu4c/bin/makeconv
-- gennorm2 program: ICU_GENNORM2_EXECUTABLE=/usr/local/opt/icu4c/sbin/gennorm2
-- genccode program: ICU_GENCCODE_EXECUTABLE=/usr/local/opt/icu4c/sbin/genccode
-- gensprep program: ICU_GENSPREP_EXECUTABLE=/usr/local/opt/icu4c/sbin/gensprep
-- icupkg program: ICU_ICUPKG_EXECUTABLE=/usr/local/opt/icu4c/sbin/icupkg
-- gencmn program: ICU_GENCMN_EXECUTABLE=/usr/local/opt/icu4c/sbin/gencmn
-- Makefile.inc data: ICU_MAKEFILE_INC=ICU_MAKEFILE_INC-NOTFOUND
-- pkgdata.inc data: ICU_PKGDATA_INC=ICU_PKGDATA_INC-NOTFOUND
-- i18n library found: ICU_I18N_FOUND=
-- i18n library found (compat name): I18N_FOUND=
-- i18n library: ICU_I18N_LIBRARIES=
-- uc library found: ICU_UC_FOUND=
-- uc library found (compat name): UC_FOUND=
-- uc library: ICU_UC_LIBRARIES=
-- ----------------
-- ICU_FOUND: FALSE
-- ICU_INCLUDE_DIRS:
-- ICU_LIBRARIES:
-- Configuring incomplete, errors occurred!
See also "//android/.cxx/Debug/2k402641/arm64-v8a/CMakeFiles/CMakeOutput.log".
C++ build system [configure] failed while executing:
/Users//Library/Android/sdk/cmake/3.22.1/bin/cmake \
-H//src \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_SYSTEM_VERSION=21 \
-DANDROID_PLATFORM=android-21 \
-DANDROID_ABI=arm64-v8a \
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
-DANDROID_NDK=/Users//Library/Android/sdk/ndk/25.1.8937393 \
-DCMAKE_ANDROID_NDK=/Users//Library/Android/sdk/ndk/25.1.8937393 \
-DCMAKE_TOOLCHAIN_FILE=/Users//Library/Android/sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake \
-DCMAKE_MAKE_PROGRAM=/Users//Library/Android/sdk/cmake/3.22.1/bin/ninja \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=//example/build/uuid/intermediates/cxx/Debug/2k402641/obj/arm64-v8a \
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=//example/build/uuid/intermediates/cxx/Debug/2k402641/obj/arm64-v8a \
-DCMAKE_BUILD_TYPE=Debug \
-B//android/.cxx/Debug/2k402641/arm64-v8a \
-GNinja
from //android
CMake Error at CMakeLists.txt:38 (message):
ICU libraries not found
* 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 2s
Error: Gradle task assembleDebug failed with exit code 1
Как вы можете видеть из вывода отладки Findicu, хотя оба CMAKE_PREFIX_PATH и ICU_ROOT фактически устанавливаются на правильное значение /usr/local/opt /icu4c , icu_include_dir все еще относится к include Dir в NDK -инструмент. Как я могу заставить find_package () или find_library () функции для связи правильного пакета ICU?
Я работаю над плагином Flutter, который зависит от пакета ICU. В настоящее время я застрял с связыванием библиотек ICU с моим проектом, используя Cmake . Хотя я пытался перенести фактический путь к ICU4C DIR по -разному, Cmake постоянно относится к тем частям пакета ICU, которые связаны с моим текущим Android NDK. my cmakelists.txt - это следующее: < /p> [code]cmake_minimum_required(VERSION 3.10) cmake_policy(SET CMP0074 NEW)
if (ICU_FOUND) include_directories(${ICU_INCLUDE_DIRS}) target_link_libraries(uuid PRIVATE ICU::i18n ICU::uc) else() message(FATAL_ERROR "ICU libraries not found") endif()
target_compile_definitions(uuid PUBLIC DART_SHARED_LIB)
if (ANDROID) # Support Android 15 16k page size. target_link_options(uuid PRIVATE "-Wl,-z,max-page-size=16384") endif() < /code> Теперь я получаю следующую ошибку при попытке создать пример проекта в зависимости от моего плагина: < /p> Launching lib/main.dart on sdk gphone x86 64 in debug mode...
FAILURE: Build failed with an exception.
* What went wrong: Execution failed for task ':uuid:configureCMakeDebug[arm64-v8a]'. > [CXX1429] error when building with cmake using / /src/CMakeLists.txt: -- The C compiler identification is Clang 14.0.6 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Users//Library/Android/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang - skipped -- Detecting C compile features -- Detecting C compile features - done -- CMAKE_PREFIX_PATH: /usr/local/opt/icu4c -- ICU_ROOT: /usr/local/opt/icu4c -- Found the following ICU libraries: -- i18n (required) -- uc (required) -- --------FindICU.cmake search debug-------- -- ICU binary path search order: /usr/local/opt/icu4c -- ICU include path search order: /usr/local/opt/icu4c -- ICU library path search order: /usr/local/opt/icu4c -- ---------------- -- Failed to find all ICU components (missing: ICU_LIBRARY) (found version "71.1") -- --------FindICU.cmake results debug-------- -- ICU found: FALSE -- ICU_VERSION number: 71.1 -- ICU_ROOT directory: /usr/local/opt/icu4c -- ICU_INCLUDE_DIR directory: /Users//Library/Android/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include -- ICU_LIBRARIES: -- gencnval program: ICU_GENCNVAL_EXECUTABLE=/usr/local/opt/icu4c/bin/gencnval -- icuinfo program: ICU_ICUINFO_EXECUTABLE=/usr/local/opt/icu4c/bin/icuinfo -- genbrk program: ICU_GENBRK_EXECUTABLE=/usr/local/opt/icu4c/bin/genbrk -- icu-config program: ICU_ICU-CONFIG_EXECUTABLE=/usr/local/opt/icu4c/bin/icu-config -- genrb program: ICU_GENRB_EXECUTABLE=/usr/local/opt/icu4c/bin/genrb -- gendict program: ICU_GENDICT_EXECUTABLE=/usr/local/opt/icu4c/bin/gendict -- derb program: ICU_DERB_EXECUTABLE=/usr/local/opt/icu4c/bin/derb -- pkgdata program: ICU_PKGDATA_EXECUTABLE=/usr/local/opt/icu4c/bin/pkgdata -- uconv program: ICU_UCONV_EXECUTABLE=/usr/local/opt/icu4c/bin/uconv -- gencfu program: ICU_GENCFU_EXECUTABLE=/usr/local/opt/icu4c/bin/gencfu -- makeconv program: ICU_MAKECONV_EXECUTABLE=/usr/local/opt/icu4c/bin/makeconv -- gennorm2 program: ICU_GENNORM2_EXECUTABLE=/usr/local/opt/icu4c/sbin/gennorm2 -- genccode program: ICU_GENCCODE_EXECUTABLE=/usr/local/opt/icu4c/sbin/genccode -- gensprep program: ICU_GENSPREP_EXECUTABLE=/usr/local/opt/icu4c/sbin/gensprep -- icupkg program: ICU_ICUPKG_EXECUTABLE=/usr/local/opt/icu4c/sbin/icupkg -- gencmn program: ICU_GENCMN_EXECUTABLE=/usr/local/opt/icu4c/sbin/gencmn -- Makefile.inc data: ICU_MAKEFILE_INC=ICU_MAKEFILE_INC-NOTFOUND -- pkgdata.inc data: ICU_PKGDATA_INC=ICU_PKGDATA_INC-NOTFOUND -- i18n library found: ICU_I18N_FOUND= -- i18n library found (compat name): I18N_FOUND= -- i18n library: ICU_I18N_LIBRARIES= -- uc library found: ICU_UC_FOUND= -- uc library found (compat name): UC_FOUND= -- uc library: ICU_UC_LIBRARIES= -- ---------------- -- ICU_FOUND: FALSE -- ICU_INCLUDE_DIRS: -- ICU_LIBRARIES: -- Configuring incomplete, errors occurred! See also "//android/.cxx/Debug/2k402641/arm64-v8a/CMakeFiles/CMakeOutput.log".
C++ build system [configure] failed while executing: /Users//Library/Android/sdk/cmake/3.22.1/bin/cmake \ -H//src \ -DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DCMAKE_SYSTEM_VERSION=21 \ -DANDROID_PLATFORM=android-21 \ -DANDROID_ABI=arm64-v8a \ -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \ -DANDROID_NDK=/Users//Library/Android/sdk/ndk/25.1.8937393 \ -DCMAKE_ANDROID_NDK=/Users//Library/Android/sdk/ndk/25.1.8937393 \ -DCMAKE_TOOLCHAIN_FILE=/Users//Library/Android/sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake \ -DCMAKE_MAKE_PROGRAM=/Users//Library/Android/sdk/cmake/3.22.1/bin/ninja \ -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=//example/build/uuid/intermediates/cxx/Debug/2k402641/obj/arm64-v8a \ -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=//example/build/uuid/intermediates/cxx/Debug/2k402641/obj/arm64-v8a \ -DCMAKE_BUILD_TYPE=Debug \ -B//android/.cxx/Debug/2k402641/arm64-v8a \ -GNinja from //android CMake Error at CMakeLists.txt:38 (message): ICU libraries not found
* 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 2s Error: Gradle task assembleDebug failed with exit code 1 [/code] Как вы можете видеть из вывода отладки Findicu, хотя оба CMAKE_PREFIX_PATH и ICU_ROOT фактически устанавливаются на правильное значение /usr/local/opt /icu4c , icu_include_dir все еще относится к include Dir в NDK -инструмент. Как я могу заставить find_package () или find_library () функции для связи правильного пакета ICU?
Я работаю над плагином Flutter, который зависит от пакета ICU. В настоящее время я застрял с связыванием библиотек ICU с моим проектом, используя Cmake . Хотя я пытался перенести фактический путь к ICU4C DIR по -разному, Cmake постоянно относится к...
Я клонировал работающий проект Web.net Web Forms Targeting .net Framework 4.8 Использование Cursor (клон на основе GIT).
Я столкнулся с несколькими проблемами времени сборки и времени выполнения:
Я только начал учиться и практиковать Laravel недавно, но когда я пытался и создаю новый проект, я запускаю команду «NPM Run Dev», затем я открываю ссылку «Проект. Test», он приводит меня к «project.test/Dashboard», где показывает страница xampp...
Я не слишком знаком с Java (из C++/C#). Мне нужно использовать Java, чтобы преобразовать некоторые документы из японских символов половинной ширины в полную ширину.
не мог бы кто-нибудь быть добрым и привести пример для начала. мне не повезло...
Я пытаюсь использовать этот фрагмент кода из этого ответа на вопрос «Переполнение стека»: A: Как преобразовать экземпляр std::string в нижний регистр
#include
#include
#include