Visual Studio 2008でCGIアプリケーションを作成してローカルにデイブしたので、すぐに実行できなかったWindows Server 2003 OSにアップロードしました。ランタイム再配布可能なC++バイナリを再配布可能(Server2k3、XPSP3)
私は惨めなランタイム配布をインストールする必要が推測していますが、これ読んだ後:それはサイドのものだけを再書き込みすることで、この辺を無視する方が理にかなっている場合
http://kobyk.wordpress.com/2007/07/20/dynamically-linking-with-msvcrtdll-using-visual-c-2005/
を私は疑問に思ってアプリ。
私はWindows Server 2003に必要なMSCRVTバージョンがないと推測していますか? Windows Server 2003にはそれがありますか?
シッククライアントをデプロイする場合は、必要なDLLをアプリケーションに配布したいと考えています。 iostream、sstream、stringを除いて何を仮定していますか?
windows.hを追加すると大幅に変更されますか?
を追加しました:
C/C++の下に推奨/ MTスイッチ使用
- >コード生成 - >ランタイムライブラリ - >マルチスレッド(/ MT)
を(おそらく必要があります。エラーメッセージ
を避けるために>クリーン-
ビルド:クリーンを行うには
"更新されたマニフェストをファイルに保存できませんでした")
私のアプリは38kから573kに膨らんでいます。それは私が大事に呼ぶものです(あなたの給料であれば想像してください)。このアプリの多くのインスタンスは常にロードされ、アンロードされるため(貴重なメモリとプロセッサリソースが必要です)、私はより良い(より小さい)ソリューションを探したいと思います。
これは今日の多くの状況では重要ではなく、多くの開発者の関心事ではないことを理解しています.NOTと60MBランタイムの傾向ですが、これは私がしたいことです。 ;
- > Propeties - > C/C++ - - >プリプロセッサ>プリプロセッサの定義(DEBUGを削除)
プロジェクト:コンパイルするためのプロジェクトを取得するためのデバッグを除去した後
:
を追加しましたサイズは300kに縮小され、実行されます。
を追加しました: 以下のクリス・ベッケによって示唆されるように、コピー: msvcm90.dll msvcp90.dll msvcr90.dll Microsoft.VC90.CRT.manifest アプリケーションのディレクトリには、必要なすべてのランタイムを提供します。
Visual Studio 6を使用するのは数回お勧めしますが、Vista(またはWindows 7と仮定しています)をサポートしていません。ランタイムを必要としないその他のソリューションはおそらくMASMでも基本的な味です。残念ながら、これはC++のような高水準のOOP言語を使用する目的に反するものです。
C++再配布可能ファイルをインストールする必要がある限り、トレードオフはさらに260kです。ザッツ許容
*何が大きく変わるのですか? VS2008で構築するほとんどすべてのものは、ほとんどがランタイムインストールを必要とします。 – Joe
あなたは、ほとんど何があってもランタイムを必要とします。あなたの選択はあなたがそれをどのように*含むかにあります。最も便利な方法は、静的にリンクされたバージョンを使用することです。次に、別のdllをまったく配布する必要はありません。それに失敗した場合、dllを配布するには50万の方法があります。 15ページのドキュメントを読む必要がある、非常に複雑なサイドバイサイドのものから、アプリケーションのルートフォルダに適切な名前のフォルダに入れるだけです。これはかなり扱いやすいものです。 – jalf
これはどれくらい効果があるのかよく分かりませんが、コンパイラ/リンカのオプションを試してみてください。実行可能ファイルのサイズに影響を与えるものがいくつかありました(サイズの最適化と未使用のものの削除に関するもの)。 –