我愿意编译一个需要 gcc 的 -std=c++0x 选项的程序,以使其执行 Synology x86 NAS 系统(Intel Atom)。我正在使用交叉编译工具链(synoroot 目录)。
$cat tst.cpp
tst.cpp:
int main() {
return 0;
}
$ gcc --version
gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
$gcc tst.cpp -std=c++0x --sysroot=/usr/local/synoroot -nodefaultlibs /usr/local/synoroot/lib/libc.so /usr/local/synoroot/lib/ld-linux.so.2 /usr/local/synoroot/usr/lib/libstdc++.so /usr/local/synoroot/lib/libm.so -o tst
$./tst && echo $?
0
在 Synology 上:
$./tst
Floating point exception (core dumped)
如果我使用工具链 gcc (i686-linux-gnu-gcc (GCC) 4.2.1),./tst 在 Synology 上正确执行,但不支持 -std=c++0x。
那么我怎样才能获得成功的执行和 C++0x 支持呢?
干杯