首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

小弟我想问一下关于libsvm的一个有关问题

2012-02-06 
我想问一下关于libsvm的一个问题libsvm软件里面提供的几个C程序为什么不能在vc中编译啊,求高人教我怎么改。

我想问一下关于libsvm的一个问题
libsvm软件里面提供的几个C程序为什么不能在vc中编译啊,求高人教我怎么改。例如编译svm-train时报错如下:
Linking...
svm-train.obj : error LNK2001: unresolved external symbol _svm_destroy_param
svm-train.obj : error LNK2001: unresolved external symbol _svm_destroy_model
svm-train.obj : error LNK2001: unresolved external symbol _svm_save_model
svm-train.obj : error LNK2001: unresolved external symbol _svm_train
svm-train.obj : error LNK2001: unresolved external symbol _svm_check_parameter
svm-train.obj : error LNK2001: unresolved external symbol _svm_cross_validation
svm-train.obj : error LNK2001: unresolved external symbol _svm_set_print_string_function
Debug/svm-train.exe : fatal error LNK1120: 7 unresolved externals
Error executing link.exe.

svm-train.exe - 8 error(s), 0 warning(s)


[解决办法]
libsvm/windows文件夹中自带有编译好的文件
几个c文件是独立的,除了svm.cpp,svm.cpp实现的是svm.h中的声明
所以编译每一个其他的c文件,只要它包含了svm.h,就要把svm.p添加进去
这样就成了

如果注意到svm.def文件,就知道可以先生成dll,
其他几个c文件都要调用svm。h的函数,只需把头问价和生成的dll添加到当前工程

所以另一种编译过程是:
1:建立dll 工程
2:添加svm.h svm.c svm.def
3:生成libsvm.dll
4:新建其他c问价的工程,添加相应c文件和svm.h
4:把libsvm.dll放到当前工程文件夹
bingo

热点排行