Я пытался перекрестно скомпилировать jlibtorrent для raspberry pi, который использует boost build для компиляции. Я использую официально предоставленный кросс-компилятор со следующим config.jam
:
import os ;
using gcc : arm : arm-linux-gnueabihf-g++ :
<cxxflags>-fPIC
<cxxflags>-std=c++14
<cxxflags>-fno-strict-aliasing
<cxxflags>-fvisibility=hidden
<linkflags>-m32
<linkflags>-static-libstdc++
<linkflags>-static-libgcc
<linkflags>"-z noexecstack"
# debug information
<cxxflags>-g
<cxxflags>-gdwarf-4
<cxxflags>-ggdb
;
Я в основном скопировал существующую конфигурацию для linux -x86 и заменил компилятор, но я ' m получает следующую ошибку компиляции:
libtorrent/src/entry.cpp: In member function 'libtorrent::entry& libtorrent::entry::operator[](libtorrent::string_view)':
libtorrent/src/entry.cpp:86:33: error: no matching function for call to
'std::map<std::basic_string<char>, libtorrent::entry, libtorrent::aux::strview_less, std::allocator<std::pair<const std::basic_string<char>, libtorrent::entry> > >::find(libtorrent::string_view&)'
auto const i = dict().find(key);
Я только предполагаю, что версия кросс-компилятора (4.9.3) несовместима с libtorrent, потому что я видел в linux -32-config .jam, что он использует g ++ - 5. Что еще мне не хватает? Вы можете найти измененный репозиторий в моих репозиториях на github . Я использую swig/build-linux-armv7.sh
для строительства.