問題タブ [header-files]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
292 参照

c++ - .h ファイルにデバッグを追加するときに再コンパイルを避けるためにコンパイルを分離する

ソースコードのほぼ全体で使用される.hファイルがあります(私の場合、.ccおよび.hファイルを含む1つのディレクトリです)。基本的に、私は 2 つのバージョンの .h ファイルを保持しています。1 つはコード分析用のデバッグ情報を含むも​​ので、もう 1 つは通常のものです。デバッグ バージョンには、追加のマクロと extern 関数の宣言が 1 つだけあります。私はかなり定期的に 2 つのバージョンを切り替えます。ただし、これにより 20 分の再コンパイルが発生します。

この再コンパイルの問題を回避するには、どのようにお勧めしますか? おそらく、いくつかのフラグを設定するために、別のツリーを作成しますか? 一般的な解決策とそれらを埋め込む方法は何ですか?

新しい .h ファイルには以下が含まれます。

したがって、再コンパイルが必要になることがわかります。Linux AS 3 で gcc を使用してビルドします

ありがとう

0 投票する
1 に答える
2059 参照

c++ - ソースファイルのないヘッダーファイル

関数の本体をヘッダーファイルに書き込んだので、ソースファイルがありません。VisualStudioでプロジェクトを実行しようとしたとき..

関数の定義がヘッダー自体の中にあることをVisualStudioに理解させるにはどうすればよいですか?

0 投票する
8 に答える
5341 参照

c++ - #includeはプログラムサイズに影響しますか?

cppファイルを使用#includeしてヘッダーを追加すると、最終的なプログラムのサイズが大きくなりますか?ヘッダーはコンパイル単位とは見なされませんが、ヘッダーファイルの内容はプリプロセッサによって実際のソースファイルに追加されるため、出力ファイル(exeまたはdll)のサイズはこれによって影響を受けますか?

編集:質問はテンプレート/インライン関数に関するものではないことを言及するのを忘れました。#include関数の実装の詳細がないヘッダーにを配置するとどうなるかを意味しました。ありがとう。

0 投票する
3 に答える
256 参照

c - 引数としてのヘッダー ファイル名

目的: ヘッダー ファイルのリスト (約 50 個) があり、各ヘッダー ファイルには定数要素を持つ配列がほとんどありません。配列の要素を数えるプログラムを書く必要があります。そして、他の形式の出力を作成します (ハードウェア グループによって使用されます)。

私の解決策: 50 個の奇妙なファイルをすべて含めて、アプリケーションを作成しました。次に、配列のすべての要素を指定された形式にダンプしました。

私の環境: Visual Studio V6、Windows XP

私の問題: ヘッダー ファイルの新しいセットが存在するたびに、VC++ プロジェクトの設定を新しいヘッダー ファイルのセットを指すように変更してから再構築しています。

私の質問:

少し正気ではありませんが、

  • コマンドライン引数などからヘッダーに言及する方法はありますか?
  • 毎回ソースを再コンパイルするのを避けたいだけです...
0 投票する
1 に答える
1992 参照

visual-studio - プリコンパイル済みヘッダーに resource.h を含めることは良い考えですか?

VS-IDE は//{{NO_DEPENDENCIES}}リソース ヘッダー ファイルに書き込みます。このコメントは実際には、リソース ヘッダーを含む cpp ファイルの (不要な) 再構築を防止する機能です。

ただし、MSDN に記載されているように、これは「望ましくない副作用」につながる可能性があります。

私たちのプロジェクトでは、プリコンパイル用にresource.h含まれています。stdafx.h残念ながら、リソース ファイルが変更された場合、プリコンパイル済みヘッダーは再構築されません...

NO_DEPENDENCIES を削除すると機能します (ただし、IDE 経由でリソースが変更された場合は再度書き込まれます)。

ファイルが変更されるたびにIDE がファイルに書き込まないようにする方法はあり//{{NO_DEPENDENCIES}}ますか?resource.h

resource.h最善の方法は、プリコンパイル済みヘッダー ファイルから を除外し、必要な .h および .cpp ファイルに再度含めることだと思います。この方法では、影響を受けるファイルのみを (手動で!) 再構築する必要があり、すべてのファイルを再構築する必要はありません (pch が再コンパイルされた場合に発生します)。

コメントはありますか?

0 投票する
4 に答える
3088 参照

visual-studio - VS 2005 が C++ プロジェクトのヘッダー ファイルの変更を検出しない

非常に多くの場合、実際にはほとんどの場合、Visual Studio2005 は CPP ファイル C++ プロジェクトに含まれるヘッダーが変更されたことを検出しません。結果として、ヘッダーのみが変更された場合、プロジェクトは再コンパイルされません。

「プリコンパイル済みヘッダー」の設定には依存しません。VS 2006 では発生しませんが、VS 2005 および VS 2008 のすべてのバージョンで発生します。特定のプロジェクトではなく、すべてのプロジェクトで発生します。

ヘッダー ファイルがプロジェクトの一部である場合、つまり vcproj ファイルにある場合は発生しません。

この問題を解決する唯一の方法は、クリーン ビルドを実行することです。

アドバイスをいただければ幸いです。

0 投票する
9 に答える
3575 参照

c++ - C++ プロジェクトで .h ごとに常に .cpp を作成するのは良い習慣ですか?

例外やテンプレートなどの一部のクラスは、ヘッダー ファイル (.h) のみを必要とし、多くの場合、それらに関連する .cpp はありません。

一部のプロジェクトでは、(一部のクラスでは) ヘッダー ファイルに関連付けられた .cpp ファイルがありません。これはおそらく、実装が短すぎて .h で直接行われるためか、または次のようなその他の理由による可能性があります。テンプレート クラス。ヘッダーに実装を含めることが必須です。

クラスが短すぎる場合は、.cpp ファイルを作成してヘッダー ファイルに直接コードを記述しないようにする必要があります。コードがヘッダー ファイルに記述されている場合、プロジェクト内のファイルの一貫性を保つために、空の .cpp を含める必要がありますか?

0 投票する
2 に答える
1329 参照

header-files - ヘッダー ファイル エラーを引用する dmalloc ベイルアウトを使用するように構成されたプログラム

lynx をコンパイルしようとしているときに、'with-dmalloc' 構成オプションを使用しました。しかし、コンパイルが中止され、次のエラーが発生しました:

これは、dmalloc.h の誤った行が保持するものです。

このファイルは、 http://www.filewatcher.com/p/dmalloc-5.5.2.tbz.467309/include/dmalloc.h.htmlでも表示できます。

dmalloc の開発はほとんど停止しているため、アップストリームからの修正はあまり期待できません。何か助けはありますか?

0 投票する
4 に答える
1796 参照

iphone - 何かが変更され、プリコンパイル済みヘッダーから5800のコンパイラエラーが発生しました

iPhone Xcodeプロジェクトで何かを変更したようですが、ヘッダーをプリコンパイルすると、取得します

そしてさらに5800のエラー...

私は他の誰かが最近これを自分自身に行い、私を正しい方向に向けることができることを望んでいます!

0 投票する
14 に答える
34237 参照

c++ - cpp ファイルをインクルードせずにヘッダーを使用する必要があるのはなぜですか?

それで、最初の C++ プログラミングの課題を終え、成績を受け取りました。しかし、採点によると、私は点数を失いましたincluding cpp files instead of compiling and linking them。私はそれが何を意味するのかはっきりしていません。

コードを振り返ってみると、クラスのヘッダー ファイルを作成しないことを選択しましたが、cpp ファイルですべてを行いました (ヘッダー ファイルがなくても問題なく動作するように見えました...)。グレーダーは、私が「#include "mycppfile.cpp";」と書いたことを意味していると推測しています。私のファイルのいくつかで。

#includecpp ファイルを 'ing する理由は次のとおりです。ヘッダー ファイルが#includeファイルに含まれていたので、cpp ファイルについても同じことを行いました。

それで、私は正確に何を間違えましたか、そしてなぜそれは悪いのでしょうか?