微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

谷歌模拟无法在带有 ARM 的 Unity 操作系统上编译

如何解决谷歌模拟无法在带有 ARM 的 Unity 操作系统上编译

当我尝试在具有 arm 架构的统一操作系统上编译 googletest 和 googlemock v1.10.0 时,它总是无法编译错误。顺便说一句,最好在我的 Mac OSX 和 linux 机器(CentOS 7.4)上编译它们。有人可以帮忙吗?提前致谢。

  1. 平台和工具链:
$uname -a
Linux jinpin-PC 4.19.0-arm64-server #1635 SMP Mon Jan 13 16:07:12 CST 2020 aarch64 GNU/Linux

clang version 11.0.0 (http://git.linaro.org/toolchain/jenkins-scripts.git 8b6fa8104783bf002ea5f756d60aeb5f09d1037e)
Target: aarch64-unkNown-linux-gnu
Thread model: posix
InstalledDir: /opt/clang/bin
  1. googletest(v1.10.0) 编译正常,而 googlemock(v1.10.0) 失败:
......
make[3]: Entering directory “/home/gpadmin/huor/repository/hornet-opensource/thirdparty/build/googletest-release-1.10.0”
[ 37%] Building CXX object googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/src/gmock-all.cc:39:
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock.h:59:
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-actions.h:51:
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/internal/gmock-internal-utils.h:461:37: error: no template named 'IndexSequence'
auto ApplyImpl(F&& f,Tuple&& args,IndexSequence<Idx...>) -> decltype(
                                    ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/internal/gmock-internal-utils.h:470:76: error: expected expression
                          MakeIndexSequence<std::tuple_size<Tuple>::value>())) {
                                                                           ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/internal/gmock-internal-utils.h:470:27: error: use of undeclared identifier 'MakeIndexSequence'
                          MakeIndexSequence<std::tuple_size<Tuple>::value>())) {
                          ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/internal/gmock-internal-utils.h:472:69: error: expected expression
                   MakeIndexSequence<std::tuple_size<Tuple>::value>());
                                                                    ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/internal/gmock-internal-utils.h:472:20: error: use of undeclared identifier 'MakeIndexSequence'
                   MakeIndexSequence<std::tuple_size<Tuple>::value>());
                   ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/internal/gmock-internal-utils.h:496:40: error: no template named 'MakeIndexSequence'
  using Arg = ElemFromList<I,typename MakeIndexSequence<sizeof...(Args)>::type,^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/internal/gmock-internal-utils.h:501:34: error: unkNown type name 'IgnoredValue'
  using MakeResultIgnoredValue = IgnoredValue(Args...);
                                 ^
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/src/gmock-all.cc:39:
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock.h:59:
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-actions.h:903:46: error: no template named 'IndexSequence'
  std::vector<Action<void(Args...)>> Convert(IndexSequence<I...>) const {
                                             ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-actions.h:960:19: error: no type named 'IgnoredValue' in namespace 'testing::internal'
typedef internal::IgnoredValue Unused;
        ~~~~~~~~~~^
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/src/gmock-all.cc:39:
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock.h:61:
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-function-mocker.h:39:
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-generated-function-mockers.h:47:
In file included from /home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-spec-builders.h:75:
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:88:42: error: unkNown class name 'MatchResultListener'; did you mean 'StringMatchResultListener'?
class StringMatchResultListener : public MatchResultListener {
                                         ^~~~~~~~~~~~~~~~~~~
                                         StringMatchResultListener
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:88:7: note: 'StringMatchResultListener' declared here
class StringMatchResultListener : public MatchResultListener {
      ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:88:42: error: base class has incomplete type
class StringMatchResultListener : public MatchResultListener {
                                  ~~~~~~~^~~~~~~~~~~~~~~~~~~
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:88:7: note: deFinition of 'testing::StringMatchResultListener' is not complete until the closing '}'
class StringMatchResultListener : public MatchResultListener {
      ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:90:33: error: member initializer 'MatchResultListener' does not name a non-static data member or base class
  StringMatchResultListener() : MatchResultListener(&ss_) {}
                                ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:191:23: error: no template named 'MatcherInterface'
  class Impl : public MatcherInterface<T> {
                      ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:197:31: error: unkNown type name 'MatchResultListener'
    bool MatchAndExplain(T x,MatchResultListener* listener) const override {
                              ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:215:47: error: only virtual member functions can be marked 'override'
    void Describeto(::std::ostream* os) const override {
                                              ^~~~~~~~~
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:219:55: error: only virtual member functions can be marked 'override'
    void DescribeNegationTo(::std::ostream* os) const override {
                                                      ^~~~~~~~~
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:334:27: error: unkNown type name 'MatchResultListener'
                          MatchResultListener* listener) {
                          ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:489:31: error: no template named 'MatcherInterface'
class AnyMatcherImpl : public MatcherInterface<const T&> {
                              ^
/home/gpadmin/huor/repository/hornet-opensource/thirdparty/src/googletest-release-1.10.0/googlemock/include/gmock/gmock-matchers.h:492:24: error: unkNown type name 'MatchResultListener'
                       MatchResultListener* /* listener */) const override {
                       ^
Fatal error: too many errors emitted,stopping Now [-ferror-limit=]
20 errors generated.
make[3]: *** [googlemock/CMakeFiles/gmock.dir/build.make:63:googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o] 错误 1
make[3]: Leaving directory “/home/gpadmin/huor/repository/hornet-opensource/thirdparty/build/googletest-release-1.10.0”
make[2]: *** [CMakeFiles/Makefile2:98:googlemock/CMakeFiles/gmock.dir/all] ERROR 2
make[2]: Leaving directory “/home/gpadmin/huor/repository/hornet-opensource/thirdparty/build/googletest-release-1.10.0”
make[1]: *** [Makefile:141:all] ERROR 2
make[1]: Leaving directory “/home/gpadmin/huor/repository/hornet-opensource/thirdparty/build/googletest-release-1.10.0”
make: *** [Makefile:327:/opt/dependency/package/version/googletest-release-1.10.0] ERROR 2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。