Edited at

VisualStudio の LNK1112 と LNK1158 の対処

More than 1 year has passed since last update.

プラットフォームを x86 に指定した時によく出会すエラー。

いつも忘れてググるのでメモ。


LNK1112: モジュールのコンピューターの種類 'X86' は対象コンピューターの種類 'x64' と競合しています。

指定したプラットフォームとプロジェクトのプロパティ指定が食い違っている。

以下を切り替える。

構成プロパティ > リンカー > 詳細設定 > 対象コンピューター

-- MachineX64 (/MACHINE:X64)

++ MachineX86 (/MACHINE:X86)

image


LNK1158 'rc.exe' を実行できません。

rc.exe$(WindowsSdkDir)bin\x64$(WindowsSdkDir)bin\x86の配下に存在するが、

名前順で前者のrc.exeが先にヒットしてしまっているようだ。

x86配下の32bit用rc.exeが先にヒットするように実行ファイルパスを追加する。

構成プロパティ > VC++ ディレクトリ > 実行可能ファイルディレクトリ

-- ...$(WindowsSdkDir)bin;...

++ ...$(WindowsSdkDir)bin\x86;$(WindowsSdkDir)bin;...

image