どのように実施C++コンパイラの使用特定のCRTのバージョンになっていますか?

StackOverflow https://stackoverflow.com/questions/730134

質問

を使用していVS2008開発COM dllをデフォルトの用途CRTバージョン9 ものを使用していTSF(テキストサービスフレームワークとの互換性はありませんのCRT.と思い、ソリューションが使用に対応でどのように指定すればよいですかCRTのバージョンになっていますか?

役に立ちましたか?

解決

私は全体心から手動にリンクCRTのバージョンを変更するの のない勧告に参加します。しかし、(私は想像することはできません)何らかの理由で、これはあなたのためのアクションの右側のコースであれば、そうするための方法は、<のhref = "http://msdn.microsoft.com/en-us/libraryを変更で/ms235342.aspx」のrel = "noreferrer">プロジェクトのマニフェストのます。

それはあなたの手動変更が上書きされるように、(構成プロパティ/リンカ/マニフェストファイル/マニフェスト生成VS2005での)

まずマニフェストは、のないのすべてのビルドで生成されることを確認してください。また、アイソレーションが有効になっていることがあることを確認してください。 次に、マニフェストファイルを見つけ - $(IntDir)(例えば、デバッグ)であるべきです。あなたはセクションを参照すべきであると類似 -

  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>

(デバッグビルドの場合は、もちろん)。あなたはバージョンを編集する必要があるとなPublicKeyTokenは、CRT要素の属性。 あなたはバージョンが利用可能確認するために、ローカルWINDOWS \ WinSxSフォルダにファイルを検査することができます。チェックここでは、あなたが見つけたらなPublicKeyTokenを抽出する方法ををあなたが望むバージョン。 (私が最初に試してみて、他のプロジェクトのマニフェストを直視し、ご希望のCRTのバージョンにリンクしたいが)。

あなたがそこに行く場合は、

、いくつかの大まかな水を期待しています。アプリケーションが他のサイド・バイ・サイドのコンポーネント(MFC、OpenMPの、など)にリンクしませんコンソールアプリケーションである場合は、いくつかの運を持っていることがあります。アプリケーションが非自明である場合は、いくつかの複雑なバージョンの依存関係が存在しない場合、私はのSxSコンポーネントをアモン驚かれることと思います。

(編集)また、あなたのアプリケーションで使用している特定のCRTを配布する必要があると思います。ここで誰かがそれをした人にいます。

他のヒント

最も簡単な方法が構築のためのDLLとVC++版を利用したCRT対応の投資を維持しながら、生産性を.

なかったと思うので、どちらが良いのかというだけでリンクをおDLLとバージョンの異なるCRT場合を除き、利用も、同じバージョンの、ヘッダファイルです。は、最も簡単な方法が確立されてきていますの権利のVC++のバージョン---

だいたいのみでは以下の操作が可能です。

  • を設定設定->リンカー->入力>無視する特定の図書館"を入力crtを使用(libc.lib libcmt.lib等この コードのプロジェクト第 ます。
  • の名称を入力crt版で使用する"設定->リンカー->入力>追加の依存関係"、その道"構成設定->リンカー->一般->追加図書館がディレクトリの".

また変更してみてくださいデフォルトのディレクトリ"ツール->オプション->事業やソリューション>VC++のディレクトリ->ライブラリファイル".も変$(VCInstallDir)libのパスがその他のCRT在だという

CRTの別のバージョンにVS9とリンクを使用しないでください。

あなたは他のCRTにリンクするアプリケーションを必要とする場合は、あなたがVSのバージョンでアプリをコンパイル&リンクする必要があり、VS8のCRTを言います。

ソリューションは、コンパイルされたVisual StudioのExpressの2013のx64 + OpenCVの2.4.9のx64と私のために働いた、デバッグ(私はLV2013 x64の中にいることを一体化)が、それは他のVS-バージョンのために働く必要があります:

1)あなたのソリューションを右クリック> [プロパティ]> [デバッグソースファイル...

2)あなたのVS-インストールディレクトリに応じて、多分2のentires()があります... C:\プログラムファイルのMicrosoftのVisual Studio \(x86の)12.0 \ Common7 \ IDE \ VC7 \ atlmfc C:\プログラムファイル(x86の)\のMicrosoft Visual Studioの12.0 \ Common7 \ IDE \ VC7の\のCRT

これらで、それは、Visual Studio 2013のExpressのために働くだろうが、あなただけの「Microsoft Visual Studioの11.0」または各10.0型のVisual Studio 10または11を持っていれば、他の2013年のために働く必要があります。また、単にそれらを追加することができます。

ソリューションの下で、あなたのOpenCV.slnから取得することができ、これらのエントリ]> [プロパティ]> [デバッグソースファイル(上記のように)。そして、既にdecribed:CRTが一致する必要がある...と、これはその場所で起こる。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top