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

How to tell C++ library path in Cygwin and MinGW

本文关键字:C++ 路径 MinGW Cygwin      更新时间:2023-10-16

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

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

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

$which g++
/cygdrive/c/MinGW/bin/g++

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

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

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

如果我在电脑上搜索winsock.h,我会得到这个:

C:\MinGW\include
C:\cygwin\usr\include\w32api

两者都有一个winsock.h的副本(尽管它们的文件大小不完全相同,所以它们不可能完全相同)。

谢谢你的帮助。

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

我猜为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

我相信它指的是MinGW/include中的那个。请查看Minigw文档中的包含路径。

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