如何在Cygwin和MinGW中告诉C++库路径
How to tell C++ library path in Cygwin and MinGW
我在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。如果您还有问题,请告诉我们。
- 如何将更多文件夹添加到c++include路径
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- C++A*算法并不总是在路径中具有目标节点
- 从函数角度看ID到文件路径的内部与外部映射
- boost xml parsingl将xml的路径作为变量发送
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 如何使用cppcheck处理半相对包含路径
- 在C++中设置基于操作系统的文件路径
- 基于编译器选项的编译二进制路径
- 按边长度递归搜索图中所有可行路径
- 使用变量值作为 PlaySound 中的路径
- 如何转换真实路径 CString c++
- 从 GUID 获取 USB 卷路径
- 查找 GCD:并非所有控制路径都返回值
- C++17 文件系统::remove_all 带有通配符路径
- 在带有尾部斜杠的路径上返回 std::filesystem::create_directories() 的值
- 获取当前正在运行的 exe 名称(不是路径)
- 如何从 Skia 路径几何体中获取网格?
- CMake 错误"源似乎不包含 CMakeLists.txt",路径/库连接问题
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)