Visual Studio中的Cygwin

War*_*enB 11 c++ sockets cygwin visual-studio-2008

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

即我很好奇如何sockets.h使用Cygwin在Visual Studio环境中使用unix 功能.有没有人有这个工作或有一个更容易的方法去做这个?

Rus*_*ist 8

根据您的具体目标,有几种方法可以实现.最简单的方法可能就是创建一个Visual Studio"makefile"项目,它触发一个自定义构建命令来运行你构建的makefile.但是这让你远离Visual Studio作为IDE的很多好处,所以我猜这不是你真正想要的.

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

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

如果在解决方案资源管理器中右键单击项目并选择"自定义构建规则",您将获得一个界面,可以为您选择的文件扩展名创建自定义构建规则.界面相对简单.

这可能无法满足您的需求,但它可能与您使用Visual Studio的时间差不多.


min*_*ang 5

简单地说,不要这样做.这只是浪费时间.我试了好几次,但总是失败了.大多数情况下,我对许多链接错误感到沮丧,也无法使用VS作为调试器.

您可以使用Visual Studio编辑和浏览源代码.这很好,因为VS提供了最好的C/C++ intellisense功能(例如,自动完成,快速进入定义/声明).但是,在Visual Studio 2008中使用cygwin工具链非常困难.Visual Studio 2008不适用于其他工具链.具体来说,您需要更改(1)标头,(2)库,(3)编译器和(4)链接器.但是,它通常非常难,或者您需要使用Visual Studio的优秀功能进行权衡.

Visual Studio最强大的功能是它的调试功能,如完全集成的调试环境和非常简单的监视窗口(例如,您可以直接在监视窗口中看到STL矢量元素).但是,如果要更改基本工具链,则无法执行此操作(尽管我非常怀疑甚至可以使用Visual Studio和cygwin工具链进行安全构建).

不幸的是,目前的Visual Studio 2008不适用于cygwin/MinGW.