VC++2010で他人のソースコードをビルドして実行する際の問題

このQ&Aのポイント
  • VC++自体に理解が深くないため、他人のソースコードをビルドして実行する際に問題が発生しました。
  • 特に、ヘッダファイルを正しく表示する方法が分からず困っています。
  • プロジェクトのプロパティを調整したり、プリプロセッサの定義や依存ファイルを設定しましたが、問題は解決していません。
回答を見る
  • ベストアンサー

VC++2010の「#include <」

VC++ で、他人の作ったソースコードをビルドして実行してみています。 (WinPcapのデベロッパ向けのライブラリを使った、サンプルプログラムです。) VC++自体、あまり理解が深くないのですが、 「#include <」まで書くと、「ヘッダファイル名が表示される」プロジェクトと、「そうではない」プロジェクトがあります。 「そうではない」方のプロジェクトだと、ビルド時にincludeするライブラリが足りないとか、そんな感じのエラーが表示されます。 ぱっと見の違いは、「ヘッダファイル名が表示される」プロジェクトの場合は、 ソリューションエクスプローラに、「外部依存関係」というフォルダのショートカットがあり、ライブラリがどっさりあります。 「そうではない」プロジェクトについても、「#include <」で、ヘッダファイルを表示してくれるようにしたいのですが、どの様にすればよいのでしょうか?★ プロジェクトのプロパティの、 C++>プリプロセッサ>プリプロセッサの定義 リンカー>入力>追加の依存ファイル はどちらのソースも同じにしたのですが…。

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

  • ベストアンサー
  • axsies
  • ベストアンサー率64% (38/59)
回答No.1

カギ括弧形式の#include<xxx>は、VC++の場合プロジェクト プロパティの 1.「C/C++>全般>追加するインクルード ディレクトリ」で設定されているディレクトリ 2.「構成プロパティ>VC++ディレクトリ>インクルード ディレクトリ」で設定されているディレクトリ の順に走査されます。 どちらかに、必要なインクルードファイルが含まれているディレクトリを設定してやれば、 インテリセンスの候補にも反映され、コンパイルも通ると思われます。 ちなみに、 「C++>プリプロセッサ>プリプロセッサの定義」は、 例えば、ソースコードの何処にも#define _DEBUGと書いて無くても、_DEBUGが定義されているようになる機能です。 「リンカー>入力>追加の依存ファイル」は、 静的リンクライブラリ(.lib)を走査するディレクトリの設定です。 どちらも#includeとは無関係です。

nico60000
質問者

お礼

レスありがとうございます。 >1.「C/C++>全般>追加するインクルード ディレクトリ」で設定されているディレクトリ やってみましたが、変化おきなかったようです。 「#include <」で、「stdio.h」すら出てこないので、インテリセンスの設定がOFFになっているのかと確認してみましたが、設定はONでした。 調べてみます。

nico60000
質問者

補足

できました。 インクルードの補完は、VC++2010から実装された機能みたいで、 2010でビルドできないので、 2008を入れて、そちらで作業していたことで、補完が働いていませんでした。 当然ですね…。 失礼しました。そしてありがとうございました。

関連するQ&A

  • BCBでVC++のDLLを利用するために

    C++Builder5で、VC++で作ったDLLを利用する必要に駆られてしまいました。 提供されているのはDLL本体とヘッダの2点で、BCBからリンクするために、implibを使ってdllからlibの作成をし、プロジェクトに加え、ヘッダをインクルードしました。続けて試しにコードを書いたところ、 '外部シンボル_initialize_libraryが未解決' との表示。(initialize_libraryとはDLL内にある関数です。) 調べてみたところ、 1.呼び出し規約は標準で __stdcall 2.VC++ では、_ がシンボル名の頭に付く 3.Builder ではつかない これで食い違いが生じているんだと思うのですが、更に調べると、モジュール定義ファイルにて再定義をすれば良いとの結論になりました。 BorlandのFAQも見たのですが、書式が理解できなくて・・・そこで質問させて頂きたいのですが、単純にproject名.defを作って、 >IMPORTS >initialize_library=_initialize_library とやってプロジェクトに加えれば良いのでしょうか? ソース本体にextern "C" というのも必要なようですが、こちらの記述も教えて頂けたら嬉しいです。

  • VC++6.0でのインクルード

    VC++初心者です。 環境はVC++ on win2kなのですが、 ヘッダファイルを別のファイルにしてコンパイルしたいのですが、できません。 test.cppの中身 #include <iostream> #include <string> #include <stdio> ・・・* #include "kneko.h" using namespace std; int main() { kneko x("tama"); x.naku(); } kneko.hの中身 #ifndef __kneko_h #define __kneko_h class kneko { string name; public: kneko(){}; kneko(string n){ name=n; } void setname(string n){ name=n; } void naku() const { cout <<"My name is"<<"name"<<"."endl; } }; #endif この2つを同じディレクトリに入れて、 ビルド→コンパイルすると、*のところで 「インクルードファイルがオープンできません。」 というエラーが出ます。 ためしに*の行を削除すると、エラーが8つぐらい出てきます。 どうやらヘッダファイルを読み込めていないようです。 インクルードの書式が間違っているのでしょうか?

  • VC++2008ExpressでProjectのPropertyをco

    VC++2008ExpressでProjectのPropertyをcopyする方法を教えてください。 ひとつのソリューションの下に、いくつかのプロジェクトを作っているのですが、既存のプロジェクトのプロパティ設定が新しく作ったプロジェクトにコピーされないため、プロジェクトを作るたびにプロパティ設定をやり直しています。設定したいのはリンカの追加の依存ファイル、C/C++の追加のインクルードディレクトリ、プロコンパイル済みヘッダの設定などです。 既存プロジェクトのプロパティを新規プロジェクトにコピーする方法がありましたら教えてください。よろしくお願いします。

  • VCでヘッダが見えないエラー

     Vista上でVisualStudio2008を使っています。c:\Program Files下にWinPcapをインストールして、ユーザホームのドキュメントフォルダ下にVCのワークスペースを作成してあります。  この状態で、WinPcapのサンプルプロジェクトを作ってプログラム実行すると、  fatal error C1083: include ファイルを開けません。'pcap.h': No such file or directory というエラーが出ます。VCは管理者権限で起動しています。ヘッダファイルのあるディレクトリの読み取り権限はあります。  他に何を確認すべきか教えてください。

  • VisualStudio2005で、VC6にあった外部依存関係を表示したい

    VC6では、プロジェクトに入れていないヘッダファイルなどが、外部依存関係としてプロジェクトウインドウに表示されていました。 便利に使っていたのですが、VC++2005ではなくなってしまい、ちょっと不便です。 VC++2005でも外部依存関係を表示したいのですが、どの様にすればよいでしょうか? よろしくお願いします。

  • VC++のインクルード方法について

    VC++2008にて他フォルダファイルをincludeしたいと思いましたが ディレクトリが異なる為に、 4>d:\vss\xlmap\lib\fmfc\fmDbfFile.h(6) : fatal error C1083: include ファイルを開けません。'shapefil.h': No such file or directory と、エラーが出てしまい、コンパイルができません。 どのようにヘッダーファイルをincludeすればよいのでしょうか? お力添えして頂けたら幸いです。 宜しくお願いします。

  • includeファイルの読み込み追加の際のコインパイルエラー

    VC初心者で初めて質問させて頂きます。 仕事でVC++6.0にて開発を行っています。 既設で正常に動作しているプロジェクトに対して ロジックを追加しなければいけないのですが、 その際、同プロジェクト内で定義されていない 変数を使用したく、includeファイルの 読み込みを追加(#include "aaa.h")し、参照しようと したのですが、以下のようなコンパイルエラーが 発生してしまいます。 '***' 定義されていない識別子です。 ***:追加したincludeファイル内にて定義されている    変数 紐付けがうまくいってないと思うのですが プロジェクトの設定画面にて、インクルードファイル のパスを確認したところ既設にてパスは存在して いました。 同様に依存関係を確認したところ、必要な ヘッダファイルは全てありました。 関係あるかはわかりませんが、クリーン→ビルド しても状況は変わりませんでした。 パスが通っているなら単純にインクルードファイルを 読みこんで参照すればいいと思うのですが、 何か他に必要なことがあるのでしょうか 初めての質問ということで、質問の仕方が 分かりづらい点もあるかと思いますが 宜しくお願い致します。

  • VC++の外部依存関係

    VC++初心者です。 タイトル通りVC++のFile Viewにある外部依存関係とは何ですか? ここにワークスペースに自分自信で追加したインクルードファイル以外のものが出てきます。なんとなく、コンパイルオプション(プロジェクトの設定メニュー)に設定してあるインクルードファイル類と関係がありそうにも思えますが、そうなのでしょうか? 今、手元にVC++が無いので、実際に試せないのですが、この外部依存関係に出てくるインクルードファイルも自分で追加したものの様にVC++上で編集して保存出来てしまうのでしょうか? また、インクルードファイル以外にも外部依存関係という所に設定次第で表示されるものがあるのでしょうか? 例えば、そのワークスペース内のプログラムで使用するテキストファイル(iniファイル等)等も表示されるのでしょうか? (これは無さそうですが。。。) 以上、よろしくお願いします。

  • VCでストップウォッチを作りたいのですが、うまくいきません。

    こんにちは。私は30代の男性です。 「Visual C++ の初歩(http://www.gulf.or.jp/~damayan/vc/visualc2.htm)」というサイトで、ストップウォッチプロジェクトファイルがダウンロードできたので、コピペしてコンパイルしようと思ったのですが、うまくいきませんでした。 いつも下記のようなエラーメッセージが表示されます。ヘッダーファイルに「stdafx.h」は置いてあるのですが、やり方が間違っているのでしょうか? ちなみに、ダウンロードした「release」ファイルの中のexeファイルを起動すれば、実行はされます。「自分が新規でプロジェクトファイルを作り、ダウンロードしたソースをコピーしてコンパイルを試みても、うまくいかない。」という話です。 よきアドバイスを頂ければと思います。 宜しくお願い致します。 ----- ビルド開始: プロジェクト: abc, 構成: Debug Win32 ------ コンパイルしています... abc.cpp c:\documents and settings\my documents\visual studio 2005\projects\abc\abc\abc.cpp(111) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? ビルドログは "file://c:\Documents and Settings\My Documents\Visual Studio 2005\Projects\abc\abc\Debug\BuildLog.htm" に保存されました。 abc - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

  • VisualStudio2010の設定について

    VisualStudio2010を使用しC++でプロジェクトを作成しているのですが、 インクルードディレクトリのパスや リンカーの追加のライブラリディレクトリ、追加の依存ファイル 等の設定を毎回手動で行いプロジェクトを作成しているのですが、 設定項目が多く、毎回設定するのが大変です。 インクルードやリンカーの情報を保存しておく方法等ご存知の方がいたら教えて下さい。