困っていること
LIBSVMをC++、Visual Studio 2015で利用しようとしています。
そこでVSコマンドプロンプトでnmakeを用いてビルドを試みましたがうまくいきません。
解決策やアドバイスがありましたら教えていただきたいです。
発生している問題・エラーメッセージ
LIBSVMを公式サイトからダウンロードし、
サイトを参考に開発者コマンドプロンプトforVS2015でLIBSVMのディレクトリで
nmake -f Makefile.win
でビルドを試みましたが以下の表示があり、ビルドできませんでした。
C:\libsvm-3.24>nmake -f Makefile.win Microsoft(R) Program Maintenance Utility Version 14.00.24210.0 Copyright (C) Microsoft Corporation. All rights reserved. cl.exe /nologo /O2 /EHsc /I. /D _WIN64 /D _CRT_SECURE_NO_DEPRECATE -c svm.cpp svm.cpp C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\vcruntime.h(194): error C2371: 'size_t': 再定義されています。異なる基本型です。 predefined C++ types (compiler internal)(16): note: 'size_t' の宣言を確認してください NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe"' : リターン コード '0x2' Stop.
vcruntime.hに問題がありそうなのですが、どうすればよいのかわからず困っています。
何かアドバイス、気になるところがあれば教えていただけると幸いです。
補足情報(FW/ツールのバージョンなど)
Windows 10
Visual Studio 2015
どっかで見た気がします。 コンパイラは、Visual Studioで良いですか?
gccとかが想定されているという事は無いですか?
コメントありがとうございます。
今のところVisualStudioで作っていきたいと思っています。
一旦gccを使ってやってみようと思います、、
失礼しました。 Visual Studio用だったみたいですね。
手元のVS用プロンプトも同様のエラー。よくあるのが、SDKがらみと、、と思いつつ、他の設定は無いかとみると、"x86_x64 Cross Tools Command Prompt for VS 2019"で、実行したところ、Warningは出たものの、ビルドはできました。参考までに。
コメントありがとうございます。
わざわざvs2019で試していただいてありがとうございます。
私の方でもvs2019でやってみるとビルドは出来ました、、
一旦libsvmのバージョン落としたりしながら頑張ってみます、、
手元にVS2019しかなかったので、、
x86_x64の設定を確認してみると何か分かるのでは?
勉強不足で申し訳ありません、、
「x86_x64の設定」とはどのように確認するのでしょうか、、?
libsvmの3.20だとvs2015でビルドできましたのでとりあえずはこちらで進めていこうと思います。
コンパイルが通った環境と、ダメだった環境の環境変数の違いです。コンパイラ本体は同じでしょうし、引数も同じ(同じmakefile)なのであとは、環境変数だけかと。
vs2019のコマンドプロンプトでは、PATH, LIB, LIBPATH の 環境変数を変えると OKでした。詳細は見てません(多過ぎ)が、どうも通常のVS2019のコマンドプロンプトだと、32bitでコンパイルしようとしていますが、今回のmakeが 64bitなので、そこで齟齬が発生しているのではないかと思われます。
あなたの回答
tips
プレビュー