如何在Cygwin和MinGW中确定C++库路径

6

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

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

那部分似乎已经正确设置。当我启动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环境变量中,我已经将C:\MinGW\bin配置,并且在Cygwin的/etc/profile文件中也配置了同样的路径。

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中包含文件搜索的工作原理以及如何修改它。

该网站还表示,如果您想在编译过程中查看包含文件搜索的详细信息,请向编译器传递verbose标志(-v)。

g++ -v -o prog src.cpp

1

0
如果您正在使用Eclipse环境,则可以在项目设置中指定包含路径,并指定您选择的编译器,例如,在您的情况下是mingw。如果您仍然有问题,请告诉我们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接