Не удалось создать cpp для Android: ошибка: неопределенная ссылка на » gpg::Игровые сервисы::»

#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);