我正在尝试从命令行进行构建,修改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)\**
答案 0 :(得分:1)
我建议你直接从visual studio编译它,因为它更容易,但如果你仍然希望从命令这样做,就像这个链接可能有帮助:
NMAKE : fatal error U1077: return code '0xc0000135'
显然问题是NMake无法找到编译器的路径。
答案 1 :(得分:0)
我发现(通过猜测)我需要手动创建一个名为“windows”的目录,其中生成可执行文件。不完全确定为什么这是必要的,但它完成了这项工作,如果不这样做,我仍然无法找到方法。