RealPath:
WebPath:
2017/02/12 02:24 (JST) 更新
ビルド関連 >>

トラブルシューティング

Contents

…\ATLComTime.inl(265): error C2440

…\ATLComTime.inl(265): error C2440: '型キャスト' : '__time64_t' から 'ATL::COleDateTime' に変換できません。

何故かReleaseビルドで発生する。
_DEBUG定数を定義してあげると解消…。(対症療法)

「error LNK2005: _malloc は既に LIBCMT.lib(malloc.obj) で定義されています。」

LIBCMTD.lib をリンク無視対象にする

「エラーを特定できません」

ビルドしようとしたときに、vcprojが壊れている場合に発生。(たとえば、指定のビルドプロファイルが存在しないときとか)

_beginthreadexが見つからない

コード生成を「マルチスレッド」にすると見つかるようになる。

「warning C4996: 'strcpy' が古い形式として宣言されました。」等…

#pragma warning ( disable : 4996 )

または

#define _CRT_SECURE_NO_DEPRECATE

「fatal error C1083: include ファイルを開けません。'fstream.h': No such file or directory」

#include <fstream.h>
↓
#include <fstream>
using namespace std;

「error C2663: 'insert' : 2 オーバーロードに 'this' ポインタのための必要な定義がされていません。」

constポインタなクラスから非constメンバ関数を呼ぼうとしたときなどに発生する。

_malloc は既に MSVCRTD.lib(MSVCR80D.dll) で定義されています

_malloc は既に MSVCRTD.lib(MSVCR80D.dll) で定義されています。


C++コード生成を「マルチスレッドDLL」→「マルチスレッド」に変更するとうまくいくかも。

wchar_tでリンクエラー

[C/C++] - [言語] - [wchar_t をビルトイン型として扱う]

mt.exe : general error c101008a: Failed to save the updated manifest to the file ~ (以下文字化けのような感じ)

[プロジェクト] - [プロパティ] - [マニフェストツール] - [入力と出力] -「埋め込みマニフェスト」=「いいえ」
とする。

[リンカ] - [マニフェスト ファイル] - [マニフェストの生成] = 「いいえ」
とする。

カスタムビルドで常にビルドが完了しない

プロジェクトに対するファイル追加の順序が大事らしい(おそらくVisualStudioのバグ)。

a.txt から a.cpp を生成する場合、
a.txt を先に プロジェクトに追加し、その後、a.cpp をプロジェクトに追加すると良い。