私はほとんどがVisual Studioを初めて使用しているので、これが基本的な問題であればお詫び申し上げます。私はいくつかのプロジェクトを含むソリューションを持っています。プロジェクトAでは、新しいクラスを追加した既存のファイルセットがあります。プロジェクトBは、プロジェクトAの新しいクラスでコード化された機能を使用します。プロジェクトAが最初に作成され、.libファイルが生成され、その.libファイルがプロジェクトBにリンクされます。ただし、.libファイルProject BI用にリンクエラーが発生し、追加したProject Aの新機能を参照しています。プロジェクトAから生成された.libファイルで 'dumpbin'コマンドを使用すると、私が追加した関数のシンボルが存在しないことがわかります。ただし、プロジェクトAで新しいクラスをコンパイルした後に作成された.objファイルには、これらのシンボルが含まれています。これらのシンボルがProject Aの.libファイルに存在しない理由は何ですか?Visual Studio 2005リンカの問題
0
A
答えて
13
これらは両方ともDLLプロジェクトであると仮定します。 Windowsでは、記号を__declspec(dllexport)
で飾り付けてエクスポートするか、エクスポートするシンボルを示すために.DEFファイルを使用する必要があります。
#ifdef PROJECT_A_EXPORTS
#define PROJECT_A_API __declspec(dllexport)
#else
#define PROJECT_A_API __declspec(dllimport)
#endif
あなたはクラスのすべてのメンバーをエクスポートするときに、あなたが書いた:
class PROJECT_A_API MyClass
{
// ...
};
と定義__declspec
で
が、これは通常、このようなヘッダに何かを作成することによって達成されますPROJECT_A_EXPORTS
プロジェクトBではなくプロジェクトAをコンパイルすると、両方のプロジェクトで同じMyClass.hヘッダーファイルを共有できます。プロジェクトAをコンパイルするときはシンボルをエクスポートし、プロジェクトBをコンパイルするときはシンボルをインポートします。
ここにいくつかはinformation on the DEF file routeです。ただし、これを維持するのは難しいかもしれません.C++では、各シンボルの装飾された名前をリストする必要があります。これは痛みを伴う可能性があります。
関連する問題
- 1. Visual Studio 2005の問題
- 2. Visual Studio Community 2017リンカの問題 - MariaDB
- 3. Visual Studioリンカのデバッグ
- 4. Visual Studio 2013でOpenSSLでリンカの問題が発生する
- 5. Visual Source Safe 2005の問題
- 6. リンカの警告C++ Visual Studio
- 7. Visual Studio 2005のLNK 2005エラー
- 8. Visual Studio 2005での従来のASPブレークポイントの問題
- 9. Visual Studio 2005:ビルドソリューション
- 10. Visual Studio 2005プロジェクトオプション
- 11. Visual Studio 2005ソフトウェア
- 12. Visual Studio 2005 Annoyances
- 13. のVisual Studio問題
- 14. Visual Studio 2005のシンボル
- 15. BDD with Visual Studio 2005
- 16. Visual Studio 2005/2008アドイン
- 17. MSBuild with Visual studio 2005
- 18. Visual Studioリンクの問題
- 19. Visual StudioとDPIの問題
- 20. Visual Studioエクステンションのリファレンス問題
- 21. Visual Studioブレークポイントの問題
- 22. Visual StudioローカルDBの問題
- 23. Visual Studio 2017インストールの問題
- 24. Visual Studioクリップボードの問題
- 25. Visual Studio 2017ターゲットフレームワークの問題
- 26. Visual Studio/Sourcesafeチェックアウトの問題
- 27. Visual Studio Windowsフォームサイズの問題
- 28. SharePoint Visual Studioプロジェクトデバッグの問題
- 29. Visual Studio C++の問題
- 30. Visual Studio 2010の問題
それはそれを修正しました。どうもありがとうございました! –
それで彼の答えを受け入れてください。彼に彼の15ポイントを与える:) – Goz