.libファイルを作成する(できる限り)Visual Studioプロジェクトを含む、かなりの量のコードを継承しました。 Visual Studioは「...コードを生成しています...ライブラリを作成しています...ブラウズ情報ファイルを作成しています...」と表示し、最後にビルドが成功したと表示します。 release/debugフォルダーには、多数の.objファイルがありますが、.libファイルはありません。何が欠けているのでしょうか?
ありがとう!
プロジェクトのプロパティを開きます(ソリューションエクスプローラーでプロジェクトを右クリックし、[プロパティ]を選択します)。 「Librarian」の下で「Output File」をチェックします-出力先です。
これが正しい場合は、dir /s *.lib
プロジェクトに適したサブディレクトリにあり、日付と時刻で出力ライブラリを見つけることができるかどうかを確認します。それでも見つからない場合は、クリーンな再構築を試してください(プロジェクトを右クリックし、[再構築]を選択します)。
DLLの場合、DLLが外部で使用するために何もエクスポートしない場合、.Libファイルは作成されません。これは静的libビルドに適用されるとは思いませんが、ライブラリプロジェクトのソースコード。
メソッドにプレフィックス__declspec(dllexport)を追加し忘れた場合、.libは生成されません。
静的ライブラリには2つのテンプレートクラスしか含まれていないため、.cppファイルはありませんでした。これにより、Visual Studio 2015は.libファイルを出力しませんでした。これを解決するために、すべてのヘッダーを含むファイルhuh.cppを作成しました。
既に__declspec(dllexport)
関数を使用していても、同じ問題がありました。
きみの ProjectName.cpp
ファイルには#include "ProjectName.h"
。ヘッダーファイルを含めない場合、関数はエクスポートされません。 DLLは正常にビルドされ、エラーや警告はありません(少なくともVS2017 15.8では)、ただしLIBファイルは取得できません。
ヘッダーとブームを含める-LIBファイルが生成されます。ルーキーの間違いは間違いないが、誰もがどこかで学習を始めなければならない。
エクスポートするメソッドがクラスにある場合、そのクラスで__declspec(dllexport)
する必要があります。それ以外の場合、.libは作成されません。
DLLプロジェクトで、__declspec
(dllexport).hおよび.cppファイルで定義されたメソッドの始まり。
結局、dllを再度コンパイルすると、.libファイルが生成され、リンクの準備が整います。
put Class Foo
{
public:
__declspec(dllexport) int GetFoo() const;