- 締切済み
#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++ です。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- bypass000
- ベストアンサー率100% (1/1)
すべてを見ていないのでなんとも言えませんが。 仕様しているソフトがVisual C++ 2010という事なので 「プロジェクト」→「プロパティ」→構成を「すべての構成」にする →「VC++ディレクトリ」→ライブラリディレクトリを選択して「編集」 →「新しい行」→作成された行に 「./lib\libA」と入力→Enterで入力終了→「OK」→「適用」 →#pragma comment( lib, "lib_a.lib" ) とかで出来るかもしれません 説明がへたくそで申し訳ありません
- fresh_homepie
- ベストアンサー率64% (24/37)
この問題についてはすでにMicrosoftに報告した人がいたようですね。 http://connect.microsoft.com/VisualStudio/feedback/details/596828 Microsoft PSSからVS2010向けのHotfixを手に入れられると書いてはありますが、Express版のもあるかどうかは不明。 ただ、VS2010 SP1でも直っていないのがなぜなのか気になるところですが…。 VS2012ではどうなっているのでしょうかね、私の環境にはインストールされていないので試せませんが。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> やはり、自分で指定したライブラリディレクトリからの相対パスというのは使えないのでしょうか? マイクロソフトに訊けばええやん。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> #pragma commentの中では、相対パスは使えるはずなのですが、なぜこの場合はリンクが出来ないのでしょうか? 「どこから」の相対パスなんでしょう。調べましたか?
補足
>「どこから」の相対パスなんでしょう。調べましたか? 「pragma comment 相対パス」などと調べると、相対パスが使えるという記述があったので、「どこから」ということは意識していませんでした。 やはり、自分で指定したライブラリディレクトリからの相対パスというのは使えないのでしょうか?
お礼
ありがとうございます まだまだ検索不足だったみたいですね 今手元で試せる環境がないので、試したらまた結果は報告したいと思います