1

我正在尝试从命令行为 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)\**
4

2 回答 2

1

我建议你直接从 Visual Studio 编译它,因为它更容易,但如果你仍然想通过这个链接这样的命令来编译它可能会有所帮助:

NMAKE:致命错误 U1077:返回代码“0xc0000135”

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

于 2013-07-16T01:19:31.433 回答
0

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

于 2013-08-22T19:53:26.837 回答