在WIndows上构建LIBSVM

时间:2013-07-15 18:30:31

标签: libsvm

我正在尝试从命令行进行构建,修改LIBSVM 3.17版本的Windows PC以允许加权实例 (来自http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instances)。 我正在使用Microsoft Visual Studio 2010中的可执行工具,但是我收到了一个我不明白的错误。微软的错误文档让我没有进一步。有人能指出我有用的方向,还是有人设法为Windows编译这个软件包?

我在命令行运行:

nmake -f Makefile.win

并收到错误:

NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0     \VC\bin\cl.exe"' : return code '0xc0000135' Stop.

The full makefile is:

**CXX = cl.exe
CFLAGS = -nologo -O2 -EHsc -I. -D __WIN32__ -D _CRT_SECURE_NO_DEPRECATE
TARGET = windows

all: $(TARGET)\svm-train.exe $(TARGET)\svm-predict.exe $(TARGET)\svm-scale.exe     $(TARGET)\svm-toy.exe lib

$(TARGET)\svm-predict.exe: svm.h svm-predict.c svm.obj
    $(CXX) $(CFLAGS) svm-predict.c svm.obj -Fe$(TARGET)\svm-predict.exe

$(TARGET)\svm-train.exe: svm.h svm-train.c svm.obj
    $(CXX) $(CFLAGS) svm-train.c svm.obj -Fe$(TARGET)\svm-train.exe

$(TARGET)\svm-scale.exe: svm.h svm-scale.c
    $(CXX) $(CFLAGS) svm-scale.c -Fe$(TARGET)\svm-scale.exe

$(TARGET)\svm-toy.exe: svm.h svm.obj svm-toy\windows\svm-toy.cpp
    $(CXX) $(CFLAGS) svm-toy\windows\svm-toy.cpp svm.obj user32.lib gdi32.lib comdlg32.lib      -Fe$(TARGET)\svm-toy.exe

svm.obj: svm.cpp svm.h
$(CXX) $(CFLAGS) -c svm.cpp

lib: svm.cpp svm.h svm.def
$(CXX) $(CFLAGS) -LD svm.cpp -Fe$(TARGET)\libsvm -link -DEF:svm.def 

clean:
-erase /Q *.obj $(TARGET)\**

2 个答案:

答案 0 :(得分:1)

我建议你直接从visual studio编译它,因为它更容易,但如果你仍然希望从命令这样做,就像这个链接可能有帮助:

NMAKE : fatal error U1077: return code '0xc0000135'

显然问题是NMake无法找到编译器的路径。

答案 1 :(得分:0)

我发现(通过猜测)我需要手动创建一个名为“windows”的目录,其中生成可执行文件。不完全确定为什么这是必要的,但它完成了这项工作,如果不这样做,我仍然无法找到方法。