【发布时间】:2016-01-10 14:16:23
【问题描述】:
我正在尝试使用 JNI 代码将 Android 传感器时间戳打印到文件中。
时间戳为defined asint64_t。
打印时间戳的行是:
fout<<timestamp<<std::endl;
其中 fout 是在输出模式下打开的文件流。
当我尝试编译时,出现以下错误结果:
'operator}' 和 'int64_t {aka long long int}')XXX.cpp /YYY/jni 行 ZZZ C /C++ 问题
我想我会使用标准 C++ 制作一个 MWE:
#include <iostream>
#include <cstdint>
int main(){
int64_t a;
std::cin>>a;
std::cout<<a<<std::endl;
}
但这编译没有问题,这让我觉得问题出在 Eclipse 编译代码的方式上。
我在 Eclipse 3.8.1 中。我的默认编译器是 GCC 4.9.2。
【问题讨论】:
-
编译器知道a=42。尝试在那里存储时间戳。
-
或者尝试把这个整数存在那里
-
@18446744073709551615:我已经修改了代码,使其接受用户输入,从而阻止编译器对常量进行优化。
标签: android c++ eclipse android-ndk int64