我在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
中配置了相同的路径。
答案 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环境,您可以在项目设置中指定包含路径,同时指定您选择的编译器,即您的情况。如果您还有问题,请告诉我们。