如何解决无法构建 android cpp:错误:未定义对“gpg::GameServices::”的引用
我正在按照 https://developers.google.com/games/services/cpp/gettingStartedAndroid 上的 google 指南设置 google 游戏服务。
这是我的 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,但似乎没有成功?
谢谢
解决方法
通过添加 target_link_libraries( .... gpg_sdk) 解决它;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。