C++ 如何在Visual Studio 2017上构建LIBSVM?
我正在尝试将LIBSVM与Windows 10上的Visual Studio 2017结合使用。我在/windows目录下安装了libsvm-3.22,有一个Dll文件和一堆exe文件,但没有lib文件。按照我试图通过在cmd窗口中运行来构建的自述文件中的说明: C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.batC++ 如何在Visual Studio 2017上构建LIBSVM?,c++,makefile,visual-studio-2017,libsvm,C++,Makefile,Visual Studio 2017,Libsvm,我正在尝试将LIBSVM与Windows 10上的Visual Studio 2017结合使用。我在/windows目录下安装了libsvm-3.22,有一个Dll文件和一堆exe文件,但没有lib文件。按照我试图通过在cmd窗口中运行来构建的自述文件中的说明: C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat nmake -f C:\...\libsvm-3.22\Makefile.win clean a
nmake -f C:\...\libsvm-3.22\Makefile.win clean all
结果是错误消息
NMAKE:致命错误U1073:不知道如何生成“svm.h”
如果我运行这个命令来构建lib文件
nmake -f C:\...\libsvm-3.22\Makefile.win lib
它给出了一个类似的错误
NMAKE:致命错误U1073:不知道如何生成“svm.cpp”
有人能帮忙吗?(复制到这里,以防原始页面消失)打开Visual Studio命令提示符,可以在开始->程序->Microsoft Visual Studio->工具中找到其快捷方式。现在运行
dumpbin
命令以获取dll中所有导出函数的列表:
dumpbin /exports C:\yourpath\yourlib.dll>yourlib.def
这将创建一个文本文件yourlib.def:
ordinal hint RVA name
1 0 00017770 jcopy_block_row
2 1 00017710 jcopy_sample_rows
3 2 000176C0 jdiv_round_up
4 3 000156D0 jinit_1pass_quantizer
5 4 00016D90 jinit_2pass_quantizer
6 5 00005750 jinit_c_coef_controller
...etc
现在打开yourlib.def并删除除函数名之外的所有名称,并将“EXPORTS”一行放在其顶部。我的yourlib.def文件如下所示:
EXPORTS
jcopy_block_row
jcopy_sample_rows
jdiv_round_up
jinit_1pass_quantizer
jinit_2pass_quantizer
jinit_c_coef_controller
...
现在,从该定义文件,我们终于可以创建.lib文件了。为此,我们使用lib
工具,因此请在Visual Studio命令提示符中运行此命令:
lib /def:C:\mypath\mylib.def /OUT:C:\mypath\mylib.lib
你可以从你的.dll创建一个.lib-哇!非常感谢,这确实有效,我现在可以成功地构建我的代码了!