我使用Windows XP之上的Cygwin安装程序开发C++程序。
我还安装了MinGW,因为我想使用它的g++版本,而不是Cygwin随附的版本。
该部分似乎已正确设置。当我开始Cygwin session 时,我看到以下内容:
没错,g++指向我的MinGW安装。
我不明白的是,当我编写包含库代码的代码(例如,来自Winsock/BerkleySockets API的头文件)时,如何知道编译器在哪里找到该头文件?
例如,如果我的代码中包含#include "winsock.h"
,则编译器在哪里找到该头文件?
如果我在计算机上对winsock.h进行常规搜索,则会得到以下信息:
两者都有一个winsock.h的拷贝(尽管它们的文件大小并不完全相同,因此它们不能相同)。
谢谢您的帮助。
我还应该指出,我在Windows PATH环境变量中有C:\MinGW\bin
,在Cygwin的/etc/profile file
中也配置了相同的路径。
最佳答案
我猜为MingW编译的g++具有与标准g++相同的命令行参数。 checkout 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
关于c++ - 如何在Cygwin和MinGW中判断C++库路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12868808/