6. C++ 库不兼容问题处理
作者: Lefe_x
最近遇使用 WCDB 的时候遇到个 Error,当 pod install
的时候,会抛出异常信息:
[!] Can't merge user_target_xcconfig for pod targets: ["WCDB",
"XXEngine"]. Singular build setting CLANG_CXX_LANGUAGE_STANDARD has
different values.
[!] Can't merge user_target_xcconfig for pod targets: ["WCDB",
"XXEngine"]. Singular build setting CLANG_CXX_LIBRARY has different
values.
[!] Can't merge user_target_xcconfig for pod targets: ["WCDB",
"XXEngine"]. Singular build setting CLANG_CXX_LANGUAGE_STANDARD has
different values.
[!] Can't merge user_target_xcconfig for pod targets: ["WCDB",
"XXEngine"]. Singular build setting CLANG_CXX_LIBRARY has different
values.
在项目中查了下 CLANG_CXX_LANGUAGE_STANDARD
发现 WCDB 使用的 c++ 配置是:
CLANG_CXX_LANGUAGE_STANDARD = gnu++0x
CLANG_CXX_LIBRARY = libc++
而我们自己的项目本身也使用了 c++,但我们使用的库是:
'CLANG_CXX_LANGUAGE_STANDARD' => 'gnu++98',
'CLANG_CXX_LIBRARY' => 'libstdc++',
这就导致有你没我,有我没你的尴尬局面。更重要的是在 Xcode10 中已经去掉了 libstdc++6.0.9
这个库,这就导致使用这个库的应用在 Xcode10 上会报错。
clang: warning: libstdc++ is deprecated; move to libc++ [-Wdeprecated]"
遇到这种问题最好的做法是把不支持 libc++
的库使其支持。
Last updated
Was this helpful?