• 締切済み

#pragma commentの相対パス指定

#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++ です。

みんなの回答

  • bypass000
  • ベストアンサー率100% (1/1)
回答No.4

すべてを見ていないのでなんとも言えませんが。 仕様しているソフトがVisual C++ 2010という事なので 「プロジェクト」→「プロパティ」→構成を「すべての構成」にする →「VC++ディレクトリ」→ライブラリディレクトリを選択して「編集」 →「新しい行」→作成された行に 「./lib\libA」と入力→Enterで入力終了→「OK」→「適用」 →#pragma comment( lib, "lib_a.lib" ) とかで出来るかもしれません 説明がへたくそで申し訳ありません

回答No.3

この問題についてはすでにMicrosoftに報告した人がいたようですね。 http://connect.microsoft.com/VisualStudio/feedback/details/596828 Microsoft PSSからVS2010向けのHotfixを手に入れられると書いてはありますが、Express版のもあるかどうかは不明。 ただ、VS2010 SP1でも直っていないのがなぜなのか気になるところですが…。 VS2012ではどうなっているのでしょうかね、私の環境にはインストールされていないので試せませんが。

mentalplus
質問者

お礼

ありがとうございます まだまだ検索不足だったみたいですね 今手元で試せる環境がないので、試したらまた結果は報告したいと思います

回答No.2

> やはり、自分で指定したライブラリディレクトリからの相対パスというのは使えないのでしょうか? マイクロソフトに訊けばええやん。

回答No.1

> #pragma commentの中では、相対パスは使えるはずなのですが、なぜこの場合はリンクが出来ないのでしょうか? 「どこから」の相対パスなんでしょう。調べましたか?

mentalplus
質問者

補足

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