みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C++ ビルドエラー C1083

エディター&コンパイラー : Visual studio 2008 express
OS : vista business

これまでfortran90しか触ったことがありません(といっても1年弱)


C++で書かれたサンプルファイルを動かしたいのですが、どうにもコンパイルできません。

エラーメッセージとして

.../\sdf\ISDF_data.h(12) : fatal error C1083: Cannot open include file: 'Vector/Vector.h': No such file or directory

など拡張子「.h」ファイルの認識がうまく行っていない?ようで、
フォルダを跨いだファイル指定の認識がされません。
フォルダを跨いだファイルのエラーが数十個検出されてしまいます。


VS2008上では、Visual C++ / general / empty project を作成し、
そこにサンプルを、ファイル構造はそのままに、加えました。

したがって、ファイルはフォルダの中にあります。



問題のサインプルファイルは…
http://cpc.cs.qub.ac.uk/summaries/ADRK

「Download」→「Yes」→e-mailはブランクでDLできると思います。

内容は、連立方程式をグループ化して簡素化して計算する方法を提案した論文のプログラムです。



どなたか教えていただければ、本当に助かります。
よろしくお願いいたします。

投稿日時 - 2011-05-02 18:48:53

QNo.6709458

困ってます

質問者が選んだベストアンサー

プロジェクトのプロパティ

C/C++

全般

追加のインクルードディレクトリ

で、.h があるフォルダを指定すれば良いかも。

投稿日時 - 2011-05-02 19:58:06

お礼

素早い対応ありがとうございます。

「.h」ファイルに関しては、ご指摘いただいた方法で認識し、コンパイルすることができました。

本当に助かりました。ありがとうございます。


ただ…「i_data.txt」というデータを読み込むファイルが依然として認識しません。
フォルダに存在しており、ご指摘していただいた方法で指定したフォルダに入れても
「No such file or directory」が出てしまします。。。

厳密に言うと、コンパイルに成功して生成した実行ファイル中のデータ読み込み関数で
弾かれてしまう(結局はi_data.txtが認識されていないからなのですが)という現状です。

C++難しい…

投稿日時 - 2011-05-03 10:52:27

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

No2です
>ただ、フォルダ指定をしても、認識しない?ファイルがあるようで、
>パラーメータを具体的に入れるデータファイル(i_data.txt)が認識されません。。。
思い違いされてますね
先に行ったフォルダ指定はコンパイル。リンクで参照されるフォルダですので
実行時のフォルダは全く無関係です
(それとも別の方法で自分で実行時のフォルダ指定をしていますか?)

相変わらずファイル(ソース)は見てませんので想像ですが
実行モジュールと同じフォルダに該当データファイルを置いてみてください
(確実なのはデバッグしてどこのファイル読んでるのか確認してそこに置くことです)

そういったことを自分で行っているつもりなのにエラーが出ているのであれば
原因調べるためには結局そこをデバッガで確認するしかありません

投稿日時 - 2011-05-03 12:23:00

お礼

デバックして参照していたフォルダの違いに気がつきました。

初歩的なミスです。


ご迷惑おかけいたしました。

投稿日時 - 2011-05-08 17:09:21

ANo.2

面倒なのでファイルの中身まで確認してません

>.../\sdf\ISDF_data.h(12) : fatal error C1083: Cannot open include file: 'Vector/Vector.h': No such file or directory
エラーの意味はお判りでしょうか?
ISDF_data.h の12行目でincludeしようとしている Vector/Vector.h ファイルが開けません
(=該当ファイルがありません)といった趣旨のエラーメッセージです

まずダウンロードしたファイルの中に Vector.h が存在するかを確認の上
正しいフォルダを指定することでコンパイルできるようになります

(2008今手元で確認できないし)基本的な手順は既に回答ついてるので省略しますが
Vector/Vector.h と書かれているので その一つ親(上)のフォルダ指定しないと
エラーになると思います

ファイルが存在してないなら探してもらうしかありませんが存在してて
設定変えてもどうしても動かない やり方がわからない ということであれば
該当ファイルをソースファイルと同じフォルダにコピーして
#include "Vector/Vector.h" -> #include "Vector.h"
と変更すれば通るはずです(大量にあるようなのでそれなりに大変)
(<Vector/Vector.h> と書かれていても "Vector.h" に変更)

投稿日時 - 2011-05-02 20:56:05

お礼

素早い回答、本当にありがとうございます。


ご指摘いただいた通り、一つ上のフォルダの指定をすることで、認識しました!

ソースを書き換える必要はありませんでしたが、勉強になりました。



ただ、フォルダ指定をしても、認識しない?ファイルがあるようで、
パラーメータを具体的に入れるデータファイル(i_data.txt)が認識されません。。。


コンパイル後、出力される実行ファイル中の読み込みでエラーを吐いてしまします。
内容は「No such file or directory」に類似です。

何か原因があるとすれば…ソースでしょうかね…。うーん。

投稿日時 - 2011-05-03 11:00:47