如何在Cygwin和MinGW中告诉C ++库路径

时间:2012-10-13 00:23:43

标签: c++ compiler-construction cygwin mingw

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

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

这部分似乎设置正确。当我开始Cygwin会话时,我看到了:

  

$ g ++   / cygdrive / C / MinGW的/ bin中/克++

这是正确的,g ++指向我的MinGW安装。

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

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

如果我在计算机上搜索winsock.h,我会得到:

  

C:\ MinGW的\包括
  C:\ cygwin的\ USR \包括\ w32api

两者都有winsock.h的副本(虽然这些文件的大小不完全相同,所以它们不能完全相同)。

感谢您的帮助。

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

3 个答案:

答案 0 :(得分:8)

我猜测为 MingW 编译的g ++与标准 g ++ 具有相同的命令行参数。查看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

答案 1 :(得分:1)

我相信它指的是MinGW / include中的那个。看看Minigw documentation for include paths

答案 2 :(得分:0)

如果您正在使用eclipse环境,您可以在项目设置中指定包含路径,同时指定您选择的编译器,即您的情况。如果您还有问题,请告诉我们。