#android #c #google-play-services
Вопрос:
Я настраиваю игровой сервис Google, следуя рекомендациям Google по адресу https://developers.google.com/games/services/cpp/gettingStartedAndroid.
Вот мой CMake:
add_library(native_app_glue STATIC ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c)
add_library(cpufeatures STATIC ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c)
add_library(gpg_sdk STATIC IMPORTED)
set_target_properties(gpg_sdk PROPERTIES IMPORTED_LOCATION ${GPG_SDK_PATH}/lib/c /${ANDROID_ABI}/libgpg.a)
target_include_directories(${APP_NAME}
PRIVATE Classes
${GPG_SDK_PATH}/include
${ANDROID_NDK}/sources/android/native_app_glue
${ANDROID_NDK}/sources/android/cpufeatures
)
add_subdirectory(firebase_cpp_sdk)
target_link_libraries(${APP_NAME} cocos2d native_app_glue cpufeatures)
Когда я запускаю сборку, возникает ошибка:
C:/Users/xxx/AppData/Local/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c /v1/memory:2338: error: undefined reference to 'gpg::GameServices::~GameServices()'
моя сборка gradle
cmake {
targets 'MyGame'
arguments "-DCMAKE_FIND_ROOT_PATH=",
"-DANDROID_STL=c _static",
"-DANDROID_TOOLCHAIN=clang",
"-DANDROID_ARM_NEON=TRUE",
"-DPLAYCORE_LOCATION=$playcoreDir"
cppFlags "-frtti -fexceptions"
}
Примечание: Я использовал NDK r21,
Я пытаюсь использовать cppFlags «-std=c 11 » или-std=c 17 или «-stdlib=libc «, но безуспешно.
Может ли кто-нибудь столкнуться с этой проблемой? Я следую за https://forum.defold.com/t/problem-with-google-play-game-services-def-2896/11288/2, но, похоже, не увенчались успехом?
Спасибо
Ответ №1:
Решил эту проблему, добавив target_link_libraries (…. gpg_sdk);