質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Q&A

0回答

2442閲覧

nmakeでビルドできない(error C2371: 'size_t' : 再定義されています)

hsgru3

総合スコア22

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

0グッド

0クリップ

投稿2020/06/05 09:11

困っていること

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepperleaf

2020/06/05 11:52

どっかで見た気がします。 コンパイラは、Visual Studioで良いですか? gccとかが想定されているという事は無いですか?
hsgru3

2020/06/05 12:35

コメントありがとうございます。 今のところVisualStudioで作っていきたいと思っています。 一旦gccを使ってやってみようと思います、、
pepperleaf

2020/06/06 02:00

失礼しました。 Visual Studio用だったみたいですね。 手元のVS用プロンプトも同様のエラー。よくあるのが、SDKがらみと、、と思いつつ、他の設定は無いかとみると、"x86_x64 Cross Tools Command Prompt for VS 2019"で、実行したところ、Warningは出たものの、ビルドはできました。参考までに。
hsgru3

2020/06/07 00:12

コメントありがとうございます。 わざわざvs2019で試していただいてありがとうございます。 私の方でもvs2019でやってみるとビルドは出来ました、、
hsgru3

2020/06/07 00:23

一旦libsvmのバージョン落としたりしながら頑張ってみます、、
pepperleaf

2020/06/07 00:33

手元にVS2019しかなかったので、、 x86_x64の設定を確認してみると何か分かるのでは?
hsgru3

2020/06/07 01:58

勉強不足で申し訳ありません、、 「x86_x64の設定」とはどのように確認するのでしょうか、、? libsvmの3.20だとvs2015でビルドできましたのでとりあえずはこちらで進めていこうと思います。
pepperleaf

2020/06/07 02:41

コンパイルが通った環境と、ダメだった環境の環境変数の違いです。コンパイラ本体は同じでしょうし、引数も同じ(同じmakefile)なのであとは、環境変数だけかと。
pepperleaf

2020/06/07 03:03

vs2019のコマンドプロンプトでは、PATH, LIB, LIBPATH の 環境変数を変えると OKでした。詳細は見てません(多過ぎ)が、どうも通常のVS2019のコマンドプロンプトだと、32bitでコンパイルしようとしていますが、今回のmakeが 64bitなので、そこで齟齬が発生しているのではないかと思われます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問