すべてのソースを再構築することを余儀なくされることなく、ユーザーが Qt を使用するアプリケーションを Qt の独自のビルドに再リンクできるようにしたいと考えています。これは、たとえば LGPL 準拠に使用できます。これを行うには、すべてのソースにオブジェクト ファイルを提供する必要があります。簡単にするために、qmake を使用して、プロジェクトを内部的に次のように分割しました。
を含むファイルを含む、すべてのソース ファイルのオブジェクトを含むスタティックライブラリ プロジェクト
int main(int, char**)
。上記のスタティック ライブラリを Qt にリンクするアプリケーション プロジェクト。Qt は静的ライブラリまたは動的ライブラリのいずれかです。このプロジェクトのソース ファイルはありません。
次に、スタティック ライブラリ (.lib) とアプリケーション プロジェクト ファイルを配布して、誰でも自分のバージョンの Qt にアプリケーションを再リンクできるようにします (静的にリンクされた Qt または動的にリンクされた Qt)。 MSVC の必要なバージョン。
MSVC 2008 (Qt 4) と 2012 (Qt 5) の両方でビルドを行っています。makefile は qmake によって生成されます。
問題は、アプリケーション プロジェクトのビルド時にリンクが失敗することです。
LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
アプリケーション プロジェクトにダミー ソース ファイルを追加すると、すぐにdummy.cpp
リンクが成功します。この回避策を回避する方法はありますか?
//dummy.cpp (this is the entire source)
int dummy;