2013-04-29 28 views
9

Visual Studio 2010を使用して、#pragma comment(lib)のパスを指定して、それを含むcppファイルに相対的なパスを指定したいとします。#pragma comment(lib)の相対パス

私はfoo.cppで

#pragma comment(lib, __FILE__"\\..\\foo.lib") 

を試しても動作するようにです。しかし、これは私には見えないようです。

ハックの少ない方法はありますか?

答えて

6

いいえ、これは.cppファイルからの相対パスである必要がある場合はありません。非常に珍しいことですが、.libがライブラリを使用するクライアントソースコードからの相対的なディレクトリに展開されていることを通常は保証することはできません。あなたは確かにこれを規定するインストール指示を与えることができます。

普通の方法は、 "foo.lib"を指定し、適切なディレクトリで.libファイルを追加ライブラリディレクトリ設定で検索するようにリンカーを設定することです。 .libをどこにでも配備することができますが、図書館ユーザはプロジェクトを設定するときに設定を更新する必要があります。それ以外の場合は、通常の構成作業です。また、[追加の依存関係]設定でライブラリを指定するのと大きく異なるわけでもありません。

#pragmaは、通常、クライアントプログラマが静的リンクライブラリの適切なバージョンを使用するのに役立ちます。通常は静的.lib、debug vs release、/ MT vs/MDの4つのビルドを提供する必要があります。おそらくサポートするVSバージョンの数で乗算されます。これは急いで毛深くなることがあります。 _DLL、_DEBUGおよび_MSC_VER定義済みマクロは、正しい#pragmaを生成するのに役立ちます。