visual c++ 2010でx64アプリをコンパイル

環境はwindows 8.1 + visual c++ 2010 express.
x64でコンパイルしようとすると
========== Build: 0 succeeded, 0 failed, 1 skipped ==========
みたいになっちゃう問題対策。

結論からいうとWindows SDK 7.1を入れておけばよさげ。
正しいか分からない&曖昧な記憶でやった手順をメモしておくと

1. コンパネからvisual studio 2010とvc++ 2010 redistributable をアンインストール
(vc++関係も消さないと次のSDKが入れられない?)

2. Windows SDK 7.1をインストール
ここではcompilerとか.net framework 4とかはグレーアウトされてて入れられないけど無問題なんだっけ・・?
成功すれば
C:\Program Files\Microsoft SDKs\Windows\v7.1
というフォルダができているはず。

3. vc++2010をインストール
(この辺曖昧)ちなみにSP1はどこもリンク切れ。
というかSP1を入れてしまうと色々不具合があるからもう置いてない??
なのでSP1は入れなかったはず。はず。

4. ammintrin.h をコピー
3.まででx64コンパイルができるようになっているはずなんだけど、なぜかammintrin.hが見つかりませんみたいなエラー。
https://jp.mathworks.com/matlabcentral/answers/90383-fix-problem-when-mex-cpp-file
からダウンロードして、
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\
に入れる。
# 権限がうるさいフォルダのようで、MDIEで入れた際には見た目存在しているのに認識されず、エクスプローラで入れ直す必要があった。

4. ライブラリディレクトリの設定
さらにまだkernel32.libが見つかりませんみたいなエラーがでるので、プロジェクトを右クリック~プロパティ~Configuration Properties~VC++ Directories~Library Directoriesにて
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64
を追加。

# 参考にさせていただいたサイト:
- http://d.hatena.ne.jp/nanamasuhoshi/20140606/1402037892
- http://digital.ni.com/public.nsf/allkb/DD49A2842454008A86257F86004804FE
- http://stackoverflow.com/questions/15053337/fatal-error-lnk1104-cannot-open-file-kernel32-lib

--- 追記 20170801 ---
LNK1181: cannot open input file 'kernel32.lib'
みたいなエラーが出る場合は、
左ペインの当該projectを右クリック
~Properties~Configuration Properties~Generalにて、Platform Toolsetを
v100ではなくWindows7.1SDKを選択すればよい。
# 参考: kernel32.libが開けない

※ここに全て書いてあった:
64bit化Visual Studio 2010 ExpressでCUDA 7.5を使う - Qiita

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)