5

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

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

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

$哪个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 的副本(尽管它们的文件大小不完全相同,因此它们不能相同)。

谢谢您的帮助。

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

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 回答