Я создаю приложение echoprint echonest android для идентификации музыки.
Я следил за этим руководство где необходимые пакеты для echoprint codegen — это boost 1.54.0, и он просто включен для echoprint codegen в файл android.mk.
Это прекрасно работает, когда codegen генерирует звуковой код, но он не находит совпадений даже для популярных песен, таких как Gangnam Style.
Мне было интересно, должен ли я также скомпилировать файлы Boost или.
В общем: вы не компилируете необходимые файлы, если они только для заголовков. Однако вы должны скомпилировать их, если они также имеют исходные файлы.
echoprint-codegen использует только заголовки boost для некоторых числовых операций,
так что вам не нужно компилировать boost
(источник)
Библиотеки, используемые echoprint-codegen
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>
только для заголовков: они полностью состоят из файлов заголовков, содержащих шаблоны и встроенные функции, и не требуют отдельно скомпилированных двоичных файлов библиотеки или специальной обработки при компоновке (источник).
Однако есть и другие библиотеки Boost (например, Boost.Filesystem), которые необходимо скомпилировать.
Тот факт, что ваша программа строит и работает означает, что вы не пропустили ни одного этапа компиляции / компоновки. В частности, заголовки Boost обычно не требуют никаких исполняемых файлов. Скорее всего, это ошибка в вашем коде, которая вызывает эту проблему.