1. ホーム
  2. c++

[解決済み] コマンドラインオプションでヘッダーファイルをインクルードする?

2023-05-17 05:32:59

質問

コマンドラインからインクルードする追加のヘッダファイルを指定することは可能ですか (GCC 4 / C++ を使用)?

あるいは、#include 以外の方法でファイルをインクルードすることができますか?

背景 私は自分の PC で大規模なコード ベースをコンパイルしようとしています。コードは通常、複雑なビルド システム (SoftRelTools は?) を備えたクラスタでコンパイルされ、オペレーティング システムと絡み合って、他の場所にインストールすることは事実上不可能です (文字通り何百もの makefile とシェル スクリプト、およびネットワーク ドライブへのハードコードされたパスがあります)。しかし、実際のコードはかなり単純で、うまくコンパイルできるのですが、多くのインクルードが欠落しています (主に " のようなものです。 include <vector> とか、" include <math.h> ")。ビルド システムが通常これを処理すると思いますが、コードを調べて手動でインクルードを追加する必要があり、これは避けたいことです。

どのように解決するのですか。

I 発見 のように、-includeオプションがあります。これはあなたが望むものですか?

-includeファイル

あたかも "#include "file"" が主ソースファイルの1行目として現れたかのようにファイルを処理します。 が主なソース ファイルの最初の行として表示されるようにファイルを処理します。しかし ファイルを最初に検索するディレクトリは プリプロセッサの作業ディレクトリ を含むディレクトリではなく、プリプロセッサの作業ディレクトリです。 を含むディレクトリではなく、プリプロセッサの作業ディレクトリになります。そこで見つからなければ で検索されます。 の残りの部分で検索されます。 の残りの部分で検索されます。

複数の -include オプションが指定された場合、ファイルはコマンド ラインに表示された順番でインクルードされます。 の順番でインクルードされます。