Я хочу использовать SVM-код из библиотеки vlfeat, мой основной проект — c ++, а библиотека vlfeat — c. Я скопировал файлы * .h и * .c (svm, svmdataset, generic, homkermap, host, random)
Затем я включил файл SVM * .h, как здесь http://www.vlfeat.org/gcc.html
extern "C" {
#include "svm.h"}
но я получил
undefined reference to `vl_svm_new'
undefined reference to `vl_svm_train'
undefined reference to `vl_svm_get_model'
undefined reference to `vl_svm_get_bias'
undefined reference to `vl_svm_delete'
мой make-файл не такой
g++ main.cpp -o vlfeat-test -IVLROOT -LVLROOT/bin/a64/ -lvl
так как я не использую полную библиотеку.
Кажется, компоновщик не может найти * .c libs, как это исправить?
ОБНОВИТЬ:
Даже после того, как я успешно собрал vlfeat и указал на bin и включил
VLFEAT_DIR :=/media/vlfeat
-I$(VLFEAT_DIR)
-L$(VLFEAT_DIR)/bin/a64/
extern "C"{
//#include "svm.h"#include <vl/svm.h>
}
это все еще не может найти те же самые ссылки.
ОБНОВЛЕНИЕ 2:
Для меня решение это:
-I$(VLFEAT_DIR)
-L$(VLFEAT_DIR)/bin/glnxa64
-lvl
Задача ещё не решена.
Других решений пока нет …