Synology x86 NAS システム (Intel Atom) を実行するために gcc の -std=c++0x オプションを必要とするプログラムをコンパイルしたいと考えています。クロスコンパイル ツールチェーン (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 をサポートできるのでしょうか?
乾杯