如何解决谷歌模拟无法在带有 ARM 的 Unity 操作系统上编译
当我尝试在具有 arm 架构的统一操作系统上编译 googletest 和 googlemock v1.10.0 时,它总是无法编译错误。顺便说一句,最好在我的 Mac OSX 和 linux 机器(CentOS 7.4)上编译它们。有人可以帮忙吗?提前致谢。
- 平台和工具链:
$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
- 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 举报,一经查实,本站将立刻删除。