我使用Visual Studio 2015编写了一个小程序。它编译并正常运行。我现在正在尝试使用GCC MinGW编译器运行相同的程序,以便我可以将其移植到Android。 然而,编译器一直在抱怨。以下是它不断抛出的问题:
inline auto currentTime()
{
return std::chrono::high_resolution_clock::now();
}
编译器抱怨:
错误:
auto
返回没有尾随返回类型;推断回报 types是C ++ 14扩展。
编译器也抱怨这一行
return std::chrono::high_resolution_clock::now();
错误:类型
time_point
的返回值没有可行的转换 (又名time_point < std::__ndk1::chrono::steady_clock, duration < long, long ratio < 1LL, 1000000000LL > > >
)函数返回类型int
有什么方法可以解决这些问题,而不必重写我的代码部分吗?
答案 0 :(得分:1)
在我的Android.mk中APP_STL:= c ++ _ shared。这意味着NDK设置为使用LLVM C ++运行时共享库。此运行时是LLVM libc ++的Anroid端口。默认情况下,此运行时使用-std = c ++ 11进行编译。我设置了这个 - &gt; LOCAL_CPPFLAGS:= - std = c ++ 14。之后,上面引用的代码编译。
答案 1 :(得分:0)
你应该找出:: now()的类型; 然后用您找到的那种类型替换auto,
inline int currentTime()
{
return std::chrono::high_resolution_clock::now();
}
像这样^^