Снимаю вопрос - либо каким-то чудом слэш отсутствовал
здесь: path=d:\temp**** либо помог запуск файла EXTRACT_FOOT.BAT
Спасибо откликнувшимся - возможно кому-то поможет!
Сегодня немало удивился - кажется OSRM учитывает smoothness при прокладке маршрутов ! http://osrm.at/cKo
Дорога Астрахань - Атырау (Гурьев), от границы до Ганюшкино очень плохой участок (smoothness=very_bad), потом до Атырау просто плохой (smoothness=bad). По отзыву местного жителя закатали совершенно новый асфальт по районной дороге, по которому он и рекомендует объезжать легковушкам (smoothness=good). И вот сегодня случайно обнаружил что OSRM предпочел более длинный маршрут, но с лучшим smoothness !
Может ли кто-то глянуть настройки OSRM и проверить, действительно учитывается smoothness ? Или это результат того что на новой дороге установлен surface=asphalt, а на оригинальной Котяевка-Ганюшкино surface вообще не проставлен ?
Из зависимостей на сайте OSRM (stxxl и luabind собирались из портов, остальное - из пакетов):
root@freebsd10:~/osrm-backend/build # pkg info | grep -E 'boost|expat|cmake|stxxl|tbb|lua|protobuf'
boost-libs-1.55.0_5 Free portable C++ libraries (without Boost.Python)
boost-python-libs-1.55.0 Framework for interfacing Python and C++
cmake-3.2.3 Cross-platform Makefile generator
cmake-modules-3.2.3 Modules and Templates for CMake
expat-2.1.0_2 XML 1.0 parser written in C
lua51-5.1.5_9 Small, compilable scripting language providing easy access to C code
luabind-0.9.1_2 Library that helps you create bindings between C++ and Lua
protobuf-2.6.1 Data interchange format library
stxxl-1.4.1 Standard Template Library for Extra Large Data Sets
tbb-4.3.0_2 Library that provides thread building blocks
Проблема в том, что затык еще на первой стадии сборки, когда деляю cmake, который делаю так:
root@freebsd10:~/osrm-backend/build/CMakeFiles # cat CMakeError.log
Performing C++ SOURCE FILE Test LTO_AVAILABLE failed with the following output:
Change Dir: /root/osrm-backend/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTryCompileExec1047893074/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1047893074.dir/build.make CMakeFiles/cmTryCompileExec1047893074.dir/build
/usr/local/bin/cmake -E cmake_progress_report /root/osrm-backend/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec1047893074.dir/src.cxx.o
/usr/bin/clang++ -DLTO_AVAILABLE -flto -o CMakeFiles/cmTryCompileExec1047893074.dir/src.cxx.o -c /root/osrm-backend/build/CMakeFiles/CMakeTmp/src.cxx
Linking CXX executable cmTryCompileExec1047893074
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1047893074.dir/link.txt --verbose=1
/usr/bin/clang++ -DLTO_AVAILABLE CMakeFiles/cmTryCompileExec1047893074.dir/src.cxx.o -o cmTryCompileExec1047893074
CMakeFiles/cmTryCompileExec1047893074.dir/src.cxx.o: file not recognized: File format not recognized
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1
Stop.
make[1]: stopped in /root/osrm-backend/build/CMakeFiles/CMakeTmp
*** Error code 1
Stop.
make: stopped in /root/osrm-backend/build/CMakeFiles/CMakeTmp
Source file was:
int main() { return 0; }
Determining if the pthread_create exist failed with the following output:
Change Dir: /root/osrm-backend/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTryCompileExec1213479688/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1213479688.dir/build.make CMakeFiles/cmTryCompileExec1213479688.dir/build
/usr/local/bin/cmake -E cmake_progress_report /root/osrm-backend/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec1213479688.dir/CheckSymbolExists.c.o
/usr/bin/clang -o CMakeFiles/cmTryCompileExec1213479688.dir/CheckSymbolExists.c.o -c /root/osrm-backend/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTryCompileExec1213479688
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1213479688.dir/link.txt --verbose=1
/usr/bin/clang CMakeFiles/cmTryCompileExec1213479688.dir/CheckSymbolExists.c.o -o cmTryCompileExec1213479688
CMakeFiles/cmTryCompileExec1213479688.dir/CheckSymbolExists.c.o: In function `main':
/root/osrm-backend/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:(.text+0x19): undefined reference to `pthread_create'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1
Stop.
make[1]: stopped in /root/osrm-backend/build/CMakeFiles/CMakeTmp
*** Error code 1
Stop.
make: stopped in /root/osrm-backend/build/CMakeFiles/CMakeTmp
File /root/osrm-backend/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>
int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}
Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /root/osrm-backend/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTryCompileExec519672253/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec519672253.dir/build.make CMakeFiles/cmTryCompileExec519672253.dir/build
/usr/local/bin/cmake -E cmake_progress_report /root/osrm-backend/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec519672253.dir/CheckFunctionExists.c.o
/usr/bin/clang -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTryCompileExec519672253.dir/CheckFunctionExists.c.o -c /usr/local/share/cmake/Modules/CheckFunctionExists.c
Linking C executable cmTryCompileExec519672253
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec519672253.dir/link.txt --verbose=1
/usr/bin/clang -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTryCompileExec519672253.dir/CheckFunctionExists.c.o -o cmTryCompileExec519672253 -lpthreads
/usr/bin/ld: cannot find -lpthreads
clang: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1
Stop.
make[1]: stopped in /root/osrm-backend/build/CMakeFiles/CMakeTmp
*** Error code 1
Stop.
make: stopped in /root/osrm-backend/build/CMakeFiles/CMakeTmp
Performing C++ SOURCE FILE Test LUABIND51_WORKS failed with the following output:
Change Dir: /root/osrm-backend/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTryCompileExec74373479/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec74373479.dir/build.make CMakeFiles/cmTryCompileExec74373479.dir/build
/usr/local/bin/cmake -E cmake_progress_report /root/osrm-backend/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec74373479.dir/src.cxx.o
/usr/bin/clang++ -Wall -Wunreachable-code -pedantic -fPIC -std=c++11 -DLUABIND51_WORKS -O3 -DNDEBUG -I/usr/local/include -I/usr/local/include/luabind -I/usr/local/include/lua51 -o CMakeFiles/cmTryCompileExec74373479.dir/src.cxx.o -c /root/osrm-backend/build/CMakeFiles/CMakeTmp/src.cxx
In file included from /root/osrm-backend/build/CMakeFiles/CMakeTmp/src.cxx:2:
In file included from /usr/local/include/luabind/luabind.hpp:28:
In file included from /usr/local/include/luabind/class.hpp:93:
In file included from /usr/local/include/luabind/back_reference.hpp:27:
In file included from /usr/local/include/luabind/wrapper_base.hpp:31:
In file included from /usr/local/include/luabind/detail/call_member.hpp:30:
In file included from /usr/local/include/luabind/detail/convert_to_lua.hpp:28:
In file included from /usr/local/include/luabind/detail/policy.hpp:51:
/usr/local/include/luabind/detail/object_rep.hpp:77:11: error: no member named 'malloc' in namespace 'std'; did you mean 'valloc'?
return std::malloc(size);
^~~~~~~~~~~
valloc
/usr/include/unistd.h:583:7: note: 'valloc' declared here
void *valloc(size_t); /* obsoleted by malloc() */
^
In file included from /root/osrm-backend/build/CMakeFiles/CMakeTmp/src.cxx:2:
In file included from /usr/local/include/luabind/luabind.hpp:28:
In file included from /usr/local/include/luabind/class.hpp:93:
In file included from /usr/local/include/luabind/back_reference.hpp:27:
In file included from /usr/local/include/luabind/wrapper_base.hpp:31:
In file included from /usr/local/include/luabind/detail/call_member.hpp:30:
In file included from /usr/local/include/luabind/detail/convert_to_lua.hpp:28:
In file included from /usr/local/include/luabind/detail/policy.hpp:51:
/usr/local/include/luabind/detail/object_rep.hpp:84:9: error: no type named 'free' in namespace 'std'
std::free(storage);
~~~~~^
2 errors generated.
*** Error code 1
Stop.
make[1]: stopped in /root/osrm-backend/build/CMakeFiles/CMakeTmp
*** Error code 1
Stop.
make: stopped in /root/osrm-backend/build/CMakeFiles/CMakeTmp
Source file was:
#include "lua.h"
#include <luabind/luabind.hpp>
int main() { lua_State *myLuaState = luaL_newstate(); luabind::open(myLuaState); return 0;}
Если кто собирал под фряхой, подскажите, что делаю не так?
Во, почти собрал. GCC 4.8 почти без проблем справился. За исключением одного косяка - он не мог найти функцию std::stoi(). Как решение - замена этой функции, так как под фряхой народ не нашел решения этой проблемы, и все переписывают ее сами (надеюсь будет работать):
Я собирал под FreeBSD для тестов, в том числе CLang (правда, давно).
Cоветую luabind собрать вручную с https://github.com/DennisOSRM/luabind или, может быть, из портов.
Если boost будете использовать новый, luabind нужно пересобрать с ним.
Да в том то и дело, что luabind, boost собраны из портов. Сейчас хочу попробовать собрать старую версию boost, потом отдельно собрать luabind и попробовать с этим собрать.
Вроде бы, я собирал свежий boost из портов, затем luabind из портов и всё работало.
Главное - заранее удалить из системы соответствующие бинарные пакеты. (CMake любит захватить библиотеку из другой папки, он под виндой у меня даже случайные dll-ки из program files цепляет).
В общем, собраться с помощью GCC оно собралось, только вот seg-fault’ится… Странно как-то… А вот Clang все никак не может собрать.
#0 0x0000000000000000 in ?? ()
#1 0x00000008026558c8 in __cxxabiv1::__dynamic_cast (src_ptr=0x8029011c0 <(anonymous namespace)::ctype_c>, src_type=0x8028e5fb0 <typeinfo for std::locale::facet>,
dst_type=0x8028e5d40 <typeinfo for std::ctype<char>>, src2dst=0) at ../../.././../gcc-4.8.5/libstdc++-v3/libsupc++/dyncast.cc:72
#2 0x0000000802681650 in std::has_facet<std::ctype<char> > (__loc=...) at /usr/ports/lang/gcc48/work/build/x86_64-portbld-freebsd10.1/libstdc++-v3/include/bits/locale_classes.tcc:110
#3 0x0000000802676634 in std::basic_ios<char, std::char_traits<char> >::_M_cache_locale (this=this@entry=0x8028ffea8 <std::cout+8>, __loc=...)
at /usr/ports/lang/gcc48/work/build/x86_64-portbld-freebsd10.1/libstdc++-v3/include/bits/basic_ios.tcc:159
#4 0x0000000802676780 in std::basic_ios<char, std::char_traits<char> >::init (this=this@entry=0x8028ffea8 <std::cout+8>, __sb=0x8028ff780 <__gnu_internal::buf_cout_sync>)
at /usr/ports/lang/gcc48/work/build/x86_64-portbld-freebsd10.1/libstdc++-v3/include/bits/basic_ios.tcc:132
#5 0x0000000802668b91 in basic_ostream (__sb=<optimized out>, this=<optimized out>, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
at /usr/ports/lang/gcc48/work/build/x86_64-portbld-freebsd10.1/libstdc++-v3/include/ostream:85
#6 std::ios_base::Init::Init (this=<optimized out>) at ../../../.././../gcc-4.8.5/libstdc++-v3/src/c++98/ios_init.cc:91
#7 0x00000008018e9a90 in _GLOBAL__sub_I_compiler_log_formatter.cpp () from /usr/local/lib/libboost_unit_test_framework.so.1.49.0
#8 0x00000008006ba7a0 in ?? () from /libexec/ld-elf.so.1
#9 0x00000008006b9d17 in ?? () from /libexec/ld-elf.so.1
#10 0x00000008006b8129 in ?? () from /libexec/ld-elf.so.1
#11 0x0000000000000000 in ?? ()
Добрый день, специалисты!
У меня есть необходимость в проге под винду (7 sp1 x64) на c++ обращаться к OSRM и получать из него маршруты.
Развернуть OSRM по этой инструкции: https://github.com/Project-OSRM/osrm-backend/wiki/Windows-Compilation не получается.
Проясните мне пожалуйста, что вообще должно получиться в итоге, чтоб можно было обращаться к OSRM из приложений на c++ (какой-то сервер, библиотека, служба какая-то), т.е. что такое физически “Сборка OSRM”???
Ссылки на готовые сборки в этой теме уже устарели:(
Спасибо!!!