64bitアプリケーションの開発

[戻る]
ぼっさむ 2009/09/11(金) 08:34:17
64bitアプリケーションの開発をするために、Microsoft Windows SDK v7.0 の
Windows SDK Configuration Tool を実行してビルドを実行したのですが
atlsd.lib が開けないというエラーが出てしまいます。
検索をすると複数のフォルダに存在しているので、試しに VC\atlmfc\lib を
ライブラリのパスに設定してみたら以下ようなエラーが出てしまいました。

module machine type 'X86' conflicts with target machine type 'x64'

どのように設定したらビルドできるようになるのでしょうか?

開発環境は VisualStudio 2008 です。
よろしくお願いします。

επιστημη [E-Mail] [HomePage] 2009/09/11(金) 09:48:35
他のフォルダにあるやつも試してみてはいかがでしょう。

ぼっさむ 2009/09/12(土) 03:33:08
検索では以下の場所にファイルがあったのですが、
どれを指定してもエラーが表示されてしまいました。
Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\mipsiv
Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\sh4
Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\mipsii_fp
Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\mipsiv_fp
Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\x86
Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\armv4i
Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\mipsii
Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\armv4
Microsoft Visual Studio 9.0\VC\atlmfc\lib

しま 2009/09/12(土) 06:36:41
64bit のアプリケーションに適した開発環境かどうかが分かりません
1.プロセッサー(CPU)が 64bit 開発に適したものかどうか不明
2.OSが 64bit 開発に適したものかが不明

>module machine type 'X86' conflicts with target machine type 'x64'

というエラー?メッセージは x64 用のコードが必要なのに
A. 使おうとしているモジュールの方が x86 のコードなので
B. ビルド環境(OS,CPUも含めた)が x86 なので
なんか違ってませんかと言っているように読めませんか?

>どれを指定してもエラーが表示されてしまいました。
>Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\mipsiv
>Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\sh4
>Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\mipsii_fp
>Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\mipsiv_fp
>Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\x86
>Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\armv4i
>Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\mipsii
>Microsoft Visual Studio 9.0\VC\ce\atlmfc\lib\armv4

ce なんか選んでも駄目でしょう。(これらのパスの最後は Windows CE の
サポートしているCPUを示しています)

ぼっさむ 2009/09/12(土) 15:10:31
>というエラー?メッセージは x64 用のコードが必要なのに
>A. 使おうとしているモジュールの方が x86 のコードなので
>B. ビルド環境(OS,CPUも含めた)が x86 なので
>なんか違ってませんかと言っているように読めませんか?

x64のフォルダが無いのでメッセージの意味を知ってる上で駄目もとで試しました。

atl の 新規作成したプロジェクトをビルドしただけで atlsd.lib が
開けないといわれてしまうので何が悪いのかわかりません。

yoh2 [E-Mail] 2009/09/13(日) 01:18:00
こちらの環境 (Visual Studio 2008 Professional SP1)では、x64版atlsd.libは

(ほにゃらら)\Microsoft Visual Studio 9.0\VC\atlmfc\lib\amd64

にありました。「x64」ではなく「amd64」なのでご注意を。ちなみに、これは
別配布のSDKではなく、Visual Studio一式のインストーラに含まれています。
ただし、インストール時に規定を選ぶと上記のフォルダとその内容は
インストールされません。全てのインストールを選択するのがお勧めです。


ところで、今、MSDNサブスクライバダウンロードを覗いてみたら、

  Visual Studio 2008 Professional Edition (x86) 

と

  Visual Studio 2008 Service Pack 1 (x86, x64 WoW)

がバラで置かれていました。
名前から考えると、これらを使った場合、SP1を当てるまではそもそもx64開発が
できないのかもしれません。
以前はx86, x64同梱版(ただしSP未適用)もあったと思いますが……
というか、なければ手元にある同梱版ISOイメージの説明が付かない(^^;

ITO 2009/09/14(月) 10:49:12
>「x64」ではなく「amd64」なのでご注意を。
「ia64」もあるのかも知れませんね。

> 名前から考えると、これらを使った場合、SP1を当てるまではそもそもx64開発が
> できないのかもしれません。
それは、ありえると思います。
最新のSDKをダウンロードしてSDKのみで開発するか、
SP1をインストールして最新の「Visual Studio 2008」にする必要があると思います。

ぼっさむ 2009/09/16(水) 05:55:21
[[解決]]
いろいろ情報ありがとうございます。
ようやくx64形式でビルドできるようになりました。

VisualStudio2008のインストール時に、デフォルトの設定だと
x64用のatl関連のファイルがインストールされないことがわかりました。

VisualStudio2008のすべてをインストールする設定でインストールしたら
ファイルがインストールされました。

ご迷惑をおかけいたしました。
質問に答えてくださった方ありがとうございました。

古いスレッドには追加発言できません。