1

私は最初にEclipse(mingwコンパイラ)でプログラムを作成しました。現在、コードをVisualStudio2008に翻訳しています。これは複数のプロジェクトを含む1つのソリューションです。2つのプロジェクトは、(コンソール)プログラムを実行するためのものです。他の2つのプロジェクトは、それらのヘルパークラスです。プロジェクトが正しい順序でコンパイルされるように、プロジェクトの依存関係を設定しました。ヘルパープロジェクトにメインがないため、エラーメッセージLNK2019とLNK1120が表示されます。リンクせずにヘルパープロジェクトをコンパイルしようとしましたが、どうすればよいかわかりません。-cコンパイラオプションを追加しようとしましたが、失敗しました。また、ヘルパープロジェクトに役に立たないメインを追加しようとしましたが、「関数をオーバーロードできません」で実際のメインをコンパイルするとコンパイルが失敗します。

これを修正して、メインなしでヘルパープロジェクトを作成するにはどうすればよいですか?

4

3 に答える 3

3

ヘルパーライブラリを作成する場合は、Class Library代わりにプロジェクトタイプを使用する必要がありますConsole Application

于 2012-01-13T13:34:48.893 に答える
1

ヘルパーを静的ライブラリとしてコンパイルし、それらをメインプログラムにリンクすることができます。

于 2012-01-13T13:34:36.740 に答える
0
  1. ソリューションエクスプローラーでプロジェクトを右クリックして、ソリューション全体から独立してプロジェクトをコンパイルします。それらを個別にビルドして、コンパイルとリンクの両方を実行することもできます。

  2. Windows(Linuxについてはよくわかりません)でも、DLLにはエントリポイントが必要です。従来の名前はDllMainです。エントリポイントが必要ない場合は、DLLの代わりに静的ライブラリを作成する必要があります。これは、実行時に動的にロードされるのではなく、リンク時にアプリケーションにリンクされます。

    プロジェクトのプロパティを変更して、動的ライブラリではなく静的ライブラリを作成していることを通知する必要があります。これにより、リンカは関数を検索できなくなりmainます。このウォークスルーが役立つ場合があります。

    「関数をオーバーロードできません」というエラーは、追加したダミーmain関数の署名が間違っているか、間違っていることが原因であると考えられます。

于 2012-01-13T13:37:44.007 に答える