1

私は現在、POSIX C ++アプリケーションを移植して、Cygwinなどを使用せずにWindowsで実行しています。今のところ問題ありません。現在、アプリケーション(ZNC、興味がある場合はIRCバウンサー)は、Linux/BSDなどの.so共有ライブラリファイルからのモジュールのロードをサポートしています。

メインの実行可能ファイルを問題なく移植し、すべてVS2008プロジェクトファイルなどにラップしました。さて、これらのモジュールはすべて個別の.cppファイルであり、GetVersion()のようなシンボルをエクスポートするため、実行可能ファイルにリンクすることはできません。そして、とにかくそれは実行可能ではありません。

したがって、長い話を短くするために、すべてのモジュール(20を超える)を個別のDLLファイルにコンパイルする(する必要があります)。ただし、それぞれに1つのVSプロジェクトを作成したくありません。つまり、おそらくmakefileを作成する必要がありますか?または何かのようなもの?私はこれまでWindowsでこれを行ったことがないので、それが私の質問です。一連の.cppsを別々のDLLファイルにコンパイルするための最良のアプローチは何ですか(同じ設定で、すべてが1つの場所/ファイルに便利に保存されます)?

前もって感謝します!IR

4

2 に答える 2

1

私の知る限り、これを行うための組み込みの方法はありません。だからここに私がすることがあります:

  1. モジュールの 1 つを DLL に変換し、それが機能し、すべてが適切であることを確認します。

  2. 動作する 1 つの参照 vcproj から他の 20 個の vcproj を生成するスクリプトを作成します。私はあなたのモジュールシステムの詳細を知らないので、それがどれほど厳しいものになるかわかりません.

  3. それらをソリューションに追加します。

うまくいけば、うまくいきます。

于 2009-01-15T23:47:15.913 に答える
1

cmakeは MSVC でうまく機能し、クロスプラットフォームです。すべてのライブラリを 1 つの (またはオプションで dll ごとに 1 つ) CMakeList.txt ファイルに一覧表示すると、すべてのプロジェクト ファイルを含むソリューションが生成されます。UNIX では、makefile を生成します。

ああ、Windows では、間違っていなければ、make は nmake と呼ばれます。

于 2009-01-15T23:53:30.487 に答える