Пытаюсь собрать С++ порт I2P, но столкнулся со следующей проблемой.
Если собираю с TARGET_CFLAGS +=-std=gnu++0x, то компиляция заканчивается сообщением об ошибке:
Code:
mipsel-linux-uclibc-gcc -o obj/Tunnel.o Tunnel.cpp -c -O2 -pipe -mips32 -mtune=mips32 -fno-caller-saves -std=gnu++0x -I/home/ryzhovau/Entware/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/include -I/home/ryzhovau/Entware/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/include -I/opt/entware/toolchain-entware/include
Tunnel.cpp: In member function 'void i2p::tunnel::Tunnels::Run()':
Tunnel.cpp:299:3: error: 'sleep_for' is not a member of 'std::this_thread'
make[3]: *** [obj/Tunnel.o] Error 1
(исходник Tunnel.cpp).
Если собираю с ключами TARGET_CFLAGS +=-std=gnu++0x -D_GLIBCXX_USE_NANOSLEEP, то сборка проходит успешно, но при попытке запуска получаю:
Code:
admin@RT-N66U:/tmp/mnt/OPT/tmp# ./i2p --help
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
Aborted
В чём может быть дело?
Update 11/06/2014 15:58.
Выкрутился, но от этого не легче:
Code:
# export LC_ALL=C
# ./i2p --host=xxx.xxx.xxx.xxx
Segmentation fault
Вывод strace и gdb.