0

私はcygwinを使用し、cygwinでCLコンパイラを使用することにかなり慣れていません。(これは私のプロジェクト要件のためです)。

実際、cl コンパイラによって検出されたインクルード パスの問題に直面しています。プロジェクトのビルドにはメイクファイルを使用します。

makefile は自動的に絶対パス (例: /cygdrive/m/username/project_name/include/) を取り、それを CL コンパイラの /I (インクルード オプション) への引数として提供します。

しかし、Cl Compiler はこのパスでヘッダー ファイルを見つけることができませんが、ヘッダー ファイルは実際にはそのパスに存在します。

逆に、メイクファイルを変更して相対パスを指定すると (例: ../src/../project_name/include/ /cygdrive/m/username から開始せずに)、ヘッダー ファイルを検索してインクルードすることができます。このパス ... (これらは、以前に絶対パスで参照されたのと同じヘッダー ファイルです)。

/I オプションで絶対パスを指定すると、CL コンパイラがヘッダー ファイルを見つけてインクルードできない理由がわかりません。

Cygwin で使用するときにインクルード パスを提供する他のオプションや方法はありますか?

4

1 に答える 1

0

ファイルの形式を変換するには、makefile で「cygpath」を使用してみてください。あなたが提供した特定の例では、以下に示すコマンドが機能します。

INC_DIR=$(shell cygpath -m $/cygdrive/m/username/project_name/include/)

すべてのパスを変換した後、通常どおりメイクファイルにパスを含めます

-I$(INC_DIR)
于 2013-01-04T18:43:16.427 に答える