QTライブラリを使用して再コンパイルするWindowsスクリーンセーバーがあるので、より多くのプラットフォームで利用できるようになります。 私は、VistaとXPのデプロイに関する問題に直面しています。MSVCx80.dllに依存せずにQTcore4.dllを構築するには?
スクリーンセーバーをMTで静的にコンパイルして、依存性チェッカーを実行します。 結果は次のとおりです。
MyScreensaver.SCRには複数のDLL、QTCORE4.DLLが必要ですが、MSVCx80.DLLは必要ありません。 これまでのところこれは問題ありません。
私の問題は、QTCORE4.DLLにはMSVCP80.DLLとMSVCR80.DLLが必要です。 結果として、私のアプリケーションはVistaシステムでは動作しません。
MS CRT DLLに依存しないように、Microsoftライブラリ(静的にLibcmt.lib?)に静的にリンクするQTCORE4.DLLをビルドできますか?
制限事項:
私は、ユーザーがMS VCの再配布可能をインストールしたくありません。スクリーンセーバーはわずか1 MBで、スクリーンセーバーのためだけに自分のコンピュータで多くの変更を行うようにユーザーに求めているのはうんざりです。
スクリーンセーバーがsystem32にインストールされていて、そこに最小限のファイルをインストールしたいので、MS CRT dllをスクリーンセーバーと同じアプリケーションパスに入れるのはやりたくありません。
最後に、私は、DLLを
の束は、私はQTの完全な静的コンパイルとリンクを試してみましたが、私が正しく理解している場合、これはで、(許可されていないということを、モノリシックなプログラムを作成することを好むんhttp://www.qtsoftware.com/developer/faqs/why-does-a-statically-built-qt-use-the-dynamic-visual-studio-runtime-libraries-do-i-need-to-deploy-those-with-my-application
様々な方向で解決策を試した後、最も実現可能な1はQTCore4.dllとQTGui4.dllを使用することであるようだが、それらを持つ:LGPL)とは、また、これに応じて推奨されていませんMSVCRTに静的にリンクされています。この方法では、私のプログラムもQT DLLもMSVCRT DLLに依存しません。
解決方法はありますか? (私はQTプログラミングに新しいです)
が、私は彼らがあなたのアプリケーションの一部は、/ MD(D)および/ MT(D)との部品を使用してコンパイルされることを協調していると思う、 マイケル
アップデート:私は静的にQTを構築している 、私はリンカQTcore.libに含まれており、/ MTで静的にも私のapplitationを構築してきました。 私は、スクリーンセーバーがMSVCR80.DLLに依存していることを確認しました。これは、おそらくQT(QTcore.lib)の静的ビルドが依存しているためです。 MSVCR80.DLLは私にとって障壁です。上記のように私はXPとVistaにはデプロイできません。 質問は今です: MSVCR80.DLLに依存せずにQTアプリケーションを構築する方法はありますか? 助けてくれてありがとう マイケル – Mike