我使用Windows XP之上的Cygwin安装程序开发C++程序。

我还安装了MinGW,因为我想使用它的g++版本,而不是Cygwin随附的版本。

该部分似乎已正确设置。当我开始Cygwin session 时,我看到以下内容:



没错,g++指向我的MinGW安装。

我不明白的是,当我编写包含库代码的代码(例如,来自Winsock/BerkleySockets API的头文件)时,如何知道编译器在哪里找到该头文件?

例如,如果我的代码中包含#include "winsock.h",则编译器在哪里找到该头文件?

如果我在计算机上对winsock.h进行常规搜索,则会得到以下信息:



两者都有一个winsock.h的拷贝(尽管它们的文件大小并不完全相同,因此它们不能相同)。

谢谢您的帮助。

我还应该指出,我在Windows PATH环境变量中有C:\MinGW\bin,在Cygwin的/etc/profile file中也配置了相同的路径。

最佳答案

我猜为MingW编译的g++具有与标准g++相同的命令行参数。 checkout g++ manual page

要将包含路径添加到编译中,请使用-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 site解释了包含文件搜索如何在MingW上工作,以及如何对其进行修改。

该网站还说,如果要在编译过程中查看包含文件搜索,请将详细标志(-v)传递给编译器。
g++ -v -o prog src.cpp

关于c++ - 如何在Cygwin和MinGW中判断C++库路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12868808/

10-15 16:09