- - PR -
VS2005のリンクエラーについて
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-11-26 17:03
いつもお世話になっております。
リンカの設定で質問です。(VisualStudio2005英語版を使用) 新しいプロジェクトをソリューションに追加し、(VS2003からコンバート) boostのフォルダ位置が異なっていたので プロジェクト->Linker->GeneralからAdditional library Directoriesに 新しいboostのフォルダ位置を指定しました。 しかし、ビルドすると 「fatal error C1083: Cannot open include file: 'boost/static_assert.hpp': No such file or directory」 とでてビルドが終わってしまいます。 新しくフォルダを指定するのにVS2005で リンカの指定位置はあっていると思うのですが ほかに設定が必要なのでしょうか? リンカに煩わされてます。(; |
|
投稿日時: 2007-11-26 17:22
「include できない」だから、リンクじゃなくてコンパイル時のエラーでは?
_________________ 囚人のジレンマな日々 |
|
投稿日時: 2007-11-26 17:48
はい、確かにインクルードするときにBOOSTを見に行っています。
#include <boost/static_assert.hpp> ここで最初のエラーがでて終了します。 なので、これが見に行けないようになっています。 他のプロジェクトは見に行けるのですが なぜか新しく入れたプロジェクトは見にいけません。 それでプロジェクトの設定かリンカではないかと思っているのですが。 |
|
投稿日時: 2007-11-26 18:03
リンクエラーではないので、リンカの設定をいじっても駄目ですよ、という事です。
include の検索パスは以下。優先順位もこの順です。 ソースのあるディレクトリ。 コンパイル時にオプションで指定。cl.exe なら /I 。 環境編集の INCLUDE のパス。 で、お望みの方法は、2番目の検索パスを IDE で設定すれば良いです(環境変数に設定してもいいですけど)。環境がないのではっきり言えませんが、どこかに「インクルードディレクトリの〜〜」というのがあるかと思いますので、それに boost のソースを置いているディレクトリを設定して下さい。 _________________ 囚人のジレンマな日々 |
|
投稿日時: 2007-11-26 18:31
それもうまくいかないです。
なぜでしょう? たぶんおっしゃっているのはAdditional Include directoryのことだと思いますが BOOSTのヘッダーファイルがあるフォルダまで設定してもコンパイル時に同じエラーが出ます。 たとえば、 #include <boost/static_assert.hpp> #include <boost/functional.hpp> がありstatic_assertでエラーがでるので たとえばコメントします。 //#include <boost/static_assert.hpp> #include <boost/functional.hpp> するとfunctionalで同じエラーが出ます。 今現時点でリンカの場所でboostの$(api_path)\misc\boost\1.34.1 みたいなかたちで指定してあげています。 それでほかのプロジェクトはうまくいっているみたいです。 が、なぜか新規にインポートしたプロジェクトはここでこけます。 いろいろ手を尽くしてますがなぜなのかよくわからないです。 |
|
投稿日時: 2007-11-26 19:47
リンカではないです、と何度も言っていますが、何故まだ「リンカの設定」と言うのでしょうか。
$(api_path) なんてやらないで、普通に絶対パスを設定してみましたか? $(api_path) が何を指しているのかこちらでは分かりません。 というか勝手に設定しているので、あなたの言う「ほかのプロジェクト」は $(api_path) を設定しているが、問題になっているプロジェクトは $(api_path) を設定していないだけじゃないですか? _________________ 囚人のジレンマな日々 |
|
投稿日時: 2007-11-26 20:27
新しいプロジェクトを作成
してインクルードファイルを設定するとうまくいきました。 インクルードファイルの設定を しなかった場合にどのような設定をすれば 他のフォルダにあるファイルを読むことができるのでしょうか? どうにもそこが不思議でならないです。 |
|
投稿日時: 2007-11-26 20:32
2番目のレスで言った
ソースのあるディレクトリ。 コンパイル時にオプションで指定。cl.exe なら /I 。 環境編集の INCLUDE のパス。 がルールです。 返事を流し読みしないで、ちゃんと読んでくれてますか? _________________ 囚人のジレンマな日々 |