如何从C++代码中使用VLFEAT? 我想使用VLFAT LIB中的SVM代码,我的主要项目是C++,VLFATAT库是C。我复制了*.h和*.c文件svm、svmdataset、generic、homkermap、host、random
然后我包括了svm*.h文件,如下所示 但是我有如何从C++代码中使用VLFEAT? 我想使用VLFAT LIB中的SVM代码,我的主要项目是C++,VLFATAT库是C。我复制了*.h和*.c文件svm、svmdataset、generic、homkermap、host、random,c++,c,linux,vlfeat,C++,C,Linux,Vlfeat,然后我包括了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' 我的makefile不是这样的 g++ main.cpp
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'
我的makefile不是这样的
g++ main.cpp -o vlfeat-test -IVLROOT -LVLROOT/bin/a64/ -lvl
因为我不使用完整库
链接器似乎找不到*.c libs,如何修复
更新:
即使在我成功构建vlfeat并指向bin和include之后
VLFEAT_DIR :=/media/vlfeat
-I$(VLFEAT_DIR)
-L$(VLFEAT_DIR)/bin/a64/
extern "C"
{
//#include "svm.h"
#include <vl/svm.h>
}
不管您是否使用完整的库,您仍然需要与它链接。@JoachimPileborg*.o文件例如svm.o不是在我构建项目时创建的。
VLFEAT_DIR :=/media/vlfeat
-I$(VLFEAT_DIR)
-L$(VLFEAT_DIR)/bin/a64/
extern "C"
{
//#include "svm.h"
#include <vl/svm.h>
}
-I$(VLFEAT_DIR)
-L$(VLFEAT_DIR)/bin/glnxa64
-lvl