初めてのx64ビルド (2)

※2010 Express+SDKでx64は後の投稿「(3),(4)」にあります。
「Microsoft Visual Studio 2010 Professional – 日本語」
新規プロジェクトを「Win32コンソールアプリ」で作成する、ここでリンクオプションの詳細でターゲット環境を「MachineX64 (/MACHINE:X64)」に変更する。

普通なら「構成マネージャ」でターゲットを「Win32」から64ビットへ変更出来るはずなんですが?なぜか選べず、新規でも編集でもx64項目が出てこない。 いくら2010を使うのが初めてでもそれぐらいは見れば判る程度の設定項目なんですが・・・。 
とりあえず「Win32コンソールアプリ」+「MachineX64 (/MACHINE:X64)」の状態でビルドします。
しかし「x64」用のコードが生成されない、最後にエラーになります。

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

だそうです。1項目の設定だけx64にしても全体のビルド環境がx64を参照しないとだめです
全体→
検索すると同じようなエラーは沢山出てますね、環境がx86とx64がごちゃ混ぜ状態になっている。 対処方法は? ん~なんかいまいちぱっとしない回答ばかりです。

コマンドラインでビルド? 統合開発環境の意味がないので意見としは最悪です。
プロジェクトプロパティをx64用に書き直す? 面倒だし、MSが今更そんな製品を出すとも思えない。
マウスをカチカチするだけで32と64を切り換えれないとまったく意味が無いのです。
(横着者なので細かい操作は避けたい、出来れば寝ながらマウスだけでコードも書きたい)

とにかくx64がビルド出来るのは判っているので、「CLRコンソールアプリ」プロジェクトを新規作成してターゲットをx64にしてビルド実行します。 当然のように動くのを確認したら、
プロジェクトの編集から「.NET」の参照を全削除、コードから「using namespace」とか全部削除、そこに作ったコードを貼り付け移植しました。

ビルド、エラー 0  出来ました。

実行するとちゃんと動きました、x64で動いているウィンドウアプリのリストもちゃんと取得できています、「Win32コンソールアプリ」と「CLRコンソールアプリ」のプロジェクトの違いを比較しようと思い「Win32コンソール」のプロジェクトを開くと、なんか「構成マネージャ」の新規作成で「x64」が普通に選択できるようになっているんですが?・・・ 「x64」に切り替えて実行、正常。 今までのはなんだったのか。

つまり、1回「CLRコンソールアプリ」でx64ビルドした事がVisual Studioのどっかの設定に反映されてなんとなくOKになったって感じでしょうか?。 動くようになったので詮索はしません。 ※後日後から考えると先にExpressを入れたのでx32の変な癖のような物が残っていたのでしょうか?。
※x64選択にはPro版以上かSDK64bit版かどっちか一方が(両方でもいい)入っている必要があります、SDK32bit版では駄目です。

何かの拍子にx64を選べるようになったので?ここからExpress2010で新規作成したx64選択済みプロジェクトZIPを落とせます。もしかしたら選べる様になるかも?。環境に合わせて以下のプラットフォームツールセットの値だけ変えます。

因みに、この状態になって「2010 Express」の方もx64を普通に選択出来る状態に変わりました。
2010 Professional とも同時に使えます、設定もどっかで共有してるみたいですね。
あとリソース(.rc)を含む物も編集は無理だけどビルドは通るように変わりました。

不安材料は無料期間30日(延長90日)が過ぎた時にExpressの方がどうなるのか・・・
後日結果、Expressは特に変わらず使える。
ただProを削除するとExpress同梱の物まで区別無く削除されるので使えないまま放置する。
同梱というよりフォルダーが共通なので普通になくなってしまう

[おわり]   [つづき]初めてのx64ビルド (3)

ほんと蛇足なんですが、OS切り替えを含む? Express と Professional を行き来するとたまに依存関係が狂ってしまい、BOOLやTCHAR(他ほとんど)が定義されていないとエラーになっている状態になる時があります。 その場合は「ソリューションの再スキャン」を行うと解消されます。

About these ads

投稿日: 2011/07/15 | カテゴリー: ソフトウェア、ハードウェア | パーマリンク コメントする.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中