プロが教える店舗&オフィスのセキュリティ対策術

#pragma commentの相対パス指定について、希望の動作をしないません。
状況は以下の通りです。

libというフォルダの中にlibA、libBの二つのフォルダがあり、それぞれのフォルダの中には、lib_a.lib、mylib_b.libというファイルがあるとします。
lib
-libA
-lib_a.lib
-libB
-lib_b.lib
またライブラリディレクトリにはlibのパスのみが指定されていたとします。
この状況で#pragma comment(lib,"libA\\lib_a.lib")とすると、
「LINK : fatal error LNK1104: ファイル 'libA\lib_a.lib' を開くことができません。」
と出てしまいます。
#pragma commentの中では、相対パスは使えるはずなのですが、なぜこの場合はリンクが出来ないのでしょうか?
ちなみに絶対パスで指定した場合はエラーは出ません。
できればフォルダで分割してライブラリを管理したいと考えているので、何か解決方法をご存知の方がいれば、ご教授ください。

環境は
・OS:Windows7
・使用ソフト:Visual C++ 2010 Express
・言語:C++
です。

A 回答 (4件)

すべてを見ていないのでなんとも言えませんが。



仕様しているソフトがVisual C++ 2010という事なので

「プロジェクト」→「プロパティ」→構成を「すべての構成」にする
→「VC++ディレクトリ」→ライブラリディレクトリを選択して「編集」
→「新しい行」→作成された行に
「./lib\libA」と入力→Enterで入力終了→「OK」→「適用」
→#pragma comment( lib, "lib_a.lib" )
とかで出来るかもしれません

説明がへたくそで申し訳ありません
    • good
    • 0

この問題についてはすでにMicrosoftに報告した人がいたようですね。


http://connect.microsoft.com/VisualStudio/feedba …

Microsoft PSSからVS2010向けのHotfixを手に入れられると書いてはありますが、Express版のもあるかどうかは不明。

ただ、VS2010 SP1でも直っていないのがなぜなのか気になるところですが…。
VS2012ではどうなっているのでしょうかね、私の環境にはインストールされていないので試せませんが。
    • good
    • 0
この回答へのお礼

ありがとうございます
まだまだ検索不足だったみたいですね

今手元で試せる環境がないので、試したらまた結果は報告したいと思います

お礼日時:2012/12/25 10:02

> やはり、自分で指定したライブラリディレクトリからの相対パスというのは使えないのでしょうか?



マイクロソフトに訊けばええやん。
    • good
    • 1

> #pragma commentの中では、相対パスは使えるはずなのですが、なぜこの場合はリンクが出来ないのでしょうか?



「どこから」の相対パスなんでしょう。調べましたか?

この回答への補足

>「どこから」の相対パスなんでしょう。調べましたか?

「pragma comment 相対パス」などと調べると、相対パスが使えるという記述があったので、「どこから」ということは意識していませんでした。
やはり、自分で指定したライブラリディレクトリからの相対パスというのは使えないのでしょうか?

補足日時:2012/12/23 18:04
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!