我正在尝试使用 Firebase C++ 库 (2.0.0/2.1.0) 在 Qt(Android 和 iOS)应用程序中构建分析支持。当我的应用程序被链接时,我收到以下错误:
blaze-out/arm-linux-androideabi-4.8-bionic-armv7a-opt/genfiles/firebase/app/client/cpp/include/firebase/variant.h:533: error: undefined reference to 'firebase::Variant::assert_is_type(firebase::Variant::Type) const'
blaze-out/arm-linux-androideabi-4.8-bionic-armv7a-opt/genfiles/firebase/app/client/cpp/include/firebase/variant.h:543: error: undefined reference to 'firebase::Variant::assert_is_type(firebase::Variant::Type) const'
blaze-out/arm-linux-androideabi-4.8-bionic-armv7a-opt/genfiles/firebase/app/client/cpp/include/firebase/variant.h:553: error: undefined reference to 'firebase::Variant::assert_is_type(firebase::Variant::Type) const'
blaze-out/arm-linux-androideabi-4.8-bionic-armv7a-opt/genfiles/firebase/app/client/cpp/include/firebase/variant.h:567: error: undefined reference to 'firebase::Variant::assert_is_string() const'
firebase/analytics/client/cpp/src/analytics_android.cc:228: error: undefined reference to 'firebase::Variant::TypeName(firebase::Variant::Type)'
collect2: error: ld returned 1 exit status
我错过了什么?
我包含以下 header (遵循 GitHub 中的示例)
#include "firebase/analytics.h"
#include "firebase/analytics/event_names.h"
#include "firebase/analytics/parameter_names.h"
#include "firebase/analytics/user_property_names.h"
并链接到我的 pri 文件中的 libapp.a 和 libanalytics.a:
LIBS += -L$$FIREBASE_SDK_LIBS_PATH -lapp
LIBS += -L$$FIREBASE_SDK_LIBS_PATH -lanalytics
我有一个在类似设置中运行的 AdMob 示例 - 但我无法构建分析...
最佳答案
事实证明链接的顺序很重要。
在 libapp.a 之前链接 libanalytics.a 并且它可以工作
LIBS += -L$$FIREBASE_SDK_LIBS_PATH -lanalytics
LIBS += -L$$FIREBASE_SDK_LIBS_PATH -lapp
(我首先链接应用程序)
关于android - 链接 Firebase C++(分析)库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41204085/