c++ - Visual Studio 中的 Cygwin

标签 c++ visual-studio-2008 sockets cygwin

我正在尝试将我为类编写的旧程序从 Ubuntu 中的 KDev 移植到 Windows Visual Studio 2008,使用 Cygwin 作为个人学习练习。我将包含路径配置为包含 C:\cygwin\usr\include 但它无法正确读取 .h 文件。

也就是说,我很好奇如何在使用 Cygwin 的 Visual Studio 环境中使用 unix sockets.h 功能。有没有人做过这个工作或有更简单的方法来做到这一点?

最佳答案

根据您的确切目标,有多种方法可以解决这个问题。最简单的方法可能只是创建一个 Visual Studio“makefile”项目,该项目触发自定义构建命令以运行您构建的 makefile。但这让您无法享受 Visual Studio 作为 IDE 的许多好处,所以我猜这并不是您真正想要的。

如果您想要一个更全面集成的解决方案,您将需要做两件事。首先,您将需要更改所有包含/库路径以避免使用 Microsoft 路径,而改用 Cygwin 路径。您可以通过从菜单中选择“工具 -> 选项”,然后从出现的窗口左侧的树中选择“项目和解决方案 -> VC++ 目录”来完成此操作。您可以选择更改可执行文件、 header 、库等的搜索目录。对于您尝试执行的操作,我建议删除所有 并仅添加 cygwin 目录。

其次,您必须告诉 Visual Studio 使用 gcc/g++ 编译器。这有点棘手。 VS 支持自定义文件类型的自定义构建规则......但它似乎为 Microsoft 编译器硬连线了 C++。除了使用您自己的自定义文件扩展名外,我真的不知道解决这个问题的好方法。您可以尝试 .c(C 文件)和 .cc(C++ 文件)的标准 unix 扩展名,但我怀疑 Visual Studio 会自动选择这些扩展名。您可能不得不选择完全陌生的东西。

如果您在解决方案资源管理器中右键单击您的项目并选择“自定义构建规则”,您将看到一个界面,您可以通过该界面为您选择的文件扩展名创建自定义构建规则。从那里开始,界面相对简单。

这可能无法完全满足您的需求,但它可能与您使用 Visual Studio 获得的效果差不多。

关于c++ - Visual Studio 中的 Cygwin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1926311/

相关文章:

c++ - 为什么我会从 cmath.h 中收到数百个语法错误?

c++ - 在此上下文中, "<, >"的语法是什么意思?-- std::auto_ptr< sql::Statement > stmt(con->createStatement());

c++ - 从容器类中查找小于或大于范围的值

mysql - 如何在 vs 2008 中使用 Crystal 报表

C# tcp socket客户端从服务器下载文件

c - 当我使用 -std=c99 [c] 时套接字未声明

c++ - 为什么正则表达式的 icase 标志不能正常工作

c# - 将现有代码从 C# 2.0 移植到 C#3.0 和 .Net 3.5(可能是 .net 4.0)

visual-studio - VS2008中的代码分析(FxCop)功能在哪里?

c# - 如何将端口 IAX2 的 UDP header 转换为可读字符串