Hatena::ブログ(Diary)

Ko-Taのバ・ー・ルのようなもの

2016-10-08

VS2015とVS2013共存時のC++エラー対策

書き直します。はっきり言うとどうにもインストールエラーっぽいです。

それでも以下の症状が出た場合の対処策として記しておきます。

直りました

あるときVSを起動すると特殊な処理(インストールのような)が走って設定が色々直りました。これは一体どういうことでしょうか?

  • 修正パッチが来た?
  • もしかして開発者登録が関係してる?

修正パッチが働いた痕跡もなさそうなので開発者登録が怪しそうです。インストール時に入力したはずなんですが、直る直前にもう一度聞かれたのでどうもにも怪しいです。

なので、現状では最新状態で且つ、開発者登録をすれば問題なく使えると思います。

症状

VS2013がある状態でVS2015をインストールします。

よくあるバージョンアップ移行組です。

以前バージョンアップに伴いパス設定をこんな感じで修正したかと思います。

http://d.hatena.ne.jp/taiyakisun/20130406/1365248215

これらの設定がどう解釈されるかというと…

f:id:Ko-Ta:20161008104425p:image

Visual Studio 12.0はまえのバージョンですから違うそうじゃない。他の箇所を見ると一部は14を参照、一部は12を参照、といった感じで完全にサラダボール状態です。

こうなった場合はなんらかの原因でインストールに失敗しているようです。深く考えずに再インストールなり、以下の手段を試みましょう。

直し方

再インストールすると直るかもしれませんが、色々設定済みだとあまりしたくありませんので最後の手段としましょう。

上記の通りあるとき勝手に直りましたので、修正パッチも当てつつ、まず開発者登録の状態を勘ぐってください。現在であれば、設定の後再起動で勝手に修正されるのでは無いかと思われます。

ucrtってなに

修正されるまえはなにかにつけてucrtが無いよ!互換が無いよ!ってエラーで言われまくるので、それについて調べたことを残しておきます。

・CRT ライブラリの機能

https://msdn.microsoft.com/ja-jp/library/abx4dbyh.aspx

早速眠くなってきました。

「今度(win10)から標準ライブラリはwindowsOSの一部として管理配布します。メモリモジュールと一緒にwindowsupdaeで!」みたいなそんな感じです。

ここで重要なのは「/MT」でもこれが適用されるようなので、つまり/MTでコンパイルしてもアップデートしてランタイムじゃないけどパッチを別途ダウンロードしないと動かないので注意してください。

/MDでは解決として、同封すると良いみたいですが、ライセンスがよくわかりませ、あ、大丈夫そう。

http://dev.activebasic.com/egtra/2015/08/30/831/

egtraegtra 2016/10/19 01:57 「プラットフォームツール」で「Visual Studio 2015」を選んだ状態で、インクルードパスに
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\includeと
C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt、
ライブラリのパスに
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\ucrt\x86
を直接指定すると、どうなるでしょうか?(ATL/MFCとWindows SDKの分も必要なら足してください)

Ko-TaKo-Ta 2016/10/19 14:58 先日起動致しましたらマクロが大幅に増えてました…。
$(VCInstallDir)ですらVS2015に切り替わってました…うぉぉぉおい!
何故変わったのか原因特定は出来ませんでしたが、これ使ってねというのが見つかったので、いずれ書き直しますね。
以下のマクロに集約されたようです。
$(VC_IncludePath)
$(VC_LibraryPath_x86) //対象によって選んでください
なんだかどっと疲れたので時間をください

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Connection: close