5

Windows XP に Cygwin をインストールして C++ プログラムを開発しています。

Cygwinに付属しているものではなく、g ++のバージョンを使用したいので、MinGWもインストールしています。

その部分は正しく設定されているようです。Cygwin セッションを開始すると、次のように表示されます。

$ which g++
/cygdrive/c/MinGW/bin/g++

これは正しいです。g++ は私の MinGW インストールを指しています。

私が理解できないのは、ライブラリ コード (たとえば、Winsock/BerkleySockets API のヘッダー ファイル) を含むコードを作成するとき、コンパイラがそのヘッダー ファイルを見つけた場所をどのように確認できるかということです。

たとえば#include "winsock.h"、コード内にある場合、コンパイラはそのヘッダー ファイルをどこで見つけますか?

コンピューターで winsock.h を一般的に検索すると、次のようになります。

C:\MinGW\include
C:\cygwin\usr\include\w32api

どちらにも winsock.h のコピーがあります (ただし、これらのファイル サイズは完全に同じではないため、同一にすることはできません)。

助けてくれてありがとう。

また、Windows PATH 環境変数に があり、 Cygwin 内C:\MinGW\binで同じパスが構成されていることも指摘しておく必要があります。/etc/profile file

4

3 に答える 3

9

MingW用にコンパイルされたg++には、標準のg++と同じコマンドライン引数があると思います。g++のマニュアルページを確認してください。

コンパイルにインクルードパスを追加するには、-Iフラグを使用します。

g++ -I/include/path/here -I/another/include/path -o prog src.cpp

リンクにライブラリパスを追加するには、-Lフラグを使用します。

g++ -L/lib/path/here -L/another/lib/path -o prog src.cpp

MingWサイトでは、インクルードファイル検索がMingWでどのように機能するか、およびそれを変更する方法について説明しています。

このサイトでは、コンパイル中にインクルードファイル検索を表示する場合は、冗長フラグ(-v)をコンパイラーに渡すとも述べています。

g++ -v -o prog src.cpp
于 2012-10-13T00:42:18.160 に答える
1

MinGW/include のものを参照していると思います。インクルード パスについては、Minigw のドキュメントを参照してください。

于 2012-10-13T00:31:37.037 に答える
0

Eclipse環境を使用している場合は、プロジェクト設定でインクルードパスを指定するとともに、選択したコンパイラー(この場合はmingw)を指定できます。それでも問題が解決しない場合はお知らせください。

于 2012-10-13T01:02:50.847 に答える