0

I want to use SVM code from vlfeat lib, my main project is c++ and vlfeat lib is c. I copied *.h and *.c files(svm,svmdataset, generic,homkermap, host, random)

Then I included svm *.h file like here http://www.vlfeat.org/gcc.html

extern "C" {
#include "svm.h"
}

but I got

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'

my makefile not like this

g++ main.cpp -o vlfeat-test -IVLROOT -LVLROOT/bin/a64/ -lvl

since I don't use full lib.

Seems linker can't find *.c libs, how to fix it?

UPDATE:

Even after I successfully build vlfeat and point to bin and include

VLFEAT_DIR   :=/media/vlfeat

            -I$(VLFEAT_DIR)
            -L$(VLFEAT_DIR)/bin/a64/

extern "C"
{
//#include "svm.h"
#include <vl/svm.h>
}

it's still can't find same referencies.

UPDATE 2:

For me solution is:

-I$(VLFEAT_DIR)
-L$(VLFEAT_DIR)/bin/glnxa64
-lvl
mrgloom
  • 20,061
  • 36
  • 171
  • 301

0 Answers0