问题标签 [cygwin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3576 浏览

bash - 如何更改 cygwin rxvt 中显示的颜色?

当我打印时,"\[\e[34m\]sometext"我得到一些蓝色的文本,但是我可以在某处指定蓝色的阴影吗?

0 投票
6 回答
7842 浏览

windows - 在 cygwin/msys bash 下使用 `pkg-config` 作为命令行参数

我正在尝试使用 cygwin 作为 Windows 下的构建环境。我对 3rd 方包有一些依赖关系,例如 GTK+。

通常,当我在 Linux 下构建时,在我的 Makefile 中,我可以添加对 pkg-config 的调用作为 gcc 的参数,所以结果如下:

这在 Linux 下运行良好,但在 cygwin 中我得到:

现在,我只是手动运行 pkg-config 并将输出粘贴到 Makefile 中,这真的很糟糕。有没有解决或解决此问题的好方法?

Make不是罪魁祸首。我可以复制并粘贴 make 用来调用 gcc 的命令行,它本身将运行 gcc,它会因“:无效参数”而停止。

我写了一个小测试程序来打印命令行参数:

注意单引号。

运行测试程序:

注意最后一行的单引号。看起来 argc 比它应该的大一,并且 argv[argc - 1] 为空。在 Linux 上运行相同的测试没有这个结果。

也就是说,是否有某种方式可以让 Makefile 将 pkg-config 的结果存储到一个变量中,然后使用该变量,而不是使用反引号运算符?

0 投票
2 回答
552 浏览

visual-c++ - 如何在 64 位 windows 服务器 2008 上优化在 Visual C++ 2005 中编译 32 位应用程序

我刚刚安装了一个带有 64 位 windows server 2008 的构建服务器,用于持续集成。

我选择 64 位服务器的原因是拥有超过 ~3Gb 的 RAM。我曾希望这台机器能够提供极快的构建。

不幸的是,至少可以说,结果非常缺乏。我的桌面提供的构建速度比配备 Xeon 四核、15k RPM SAS 和 8 Gigs RAM 的服务器更快。

我们使用 Visual C++ 2005 用 Cygwin 编译我们的 32 位应用程序。

WOW64 模拟器会成为减慢构建过程的瓶颈吗?

任何指针,评论将不胜感激。

问候,

0 投票
13 回答
33348 浏览

windows - 如何将 .sh 文件与 Cygwin 关联?

我想通过双击 Windows 中的 .sh 文件在 Cygwin 中运行长 rsync 命令。它必须从文件的包含目录(例如/cygdrive/c/scripts/)开始,以便相对路径起作用。有人让这个工作吗?

注意:我刚刚在这里找到了一个管理 Windows 上下文菜单的 Cygwin 包(Bash Prompt Here)。它可能有一些线索。

0 投票
5 回答
4500 浏览

sockets - Windows 上的 Rsync - 非套接字上的套接字操作

尝试在 Windows XP SP2 中运行最新的 Cygwin 版本的 rsync 时出现以下错误。尝试本地同步(即:仅本地硬盘上的源和目标)和远程同步(使用 openssh 包中的“-e ssh”)时都会发生错误。关于如何修复/解决它的任何建议?

0 投票
3 回答
3280 浏览

command-line - tee 命令是否总是等待 EOF?

我想将命令的输出记录stdout到日志文件中。我已经安装了 Cygwin,我正在尝试使用该tee命令来完成此操作。

麻烦的是,这tee似乎坚持等待文件结束,然后再将任何内容输出到stdout日志文件或日志文件。这消除了这一切的重点,即有一个日志文件以供将来参考,还有一些stdout日志记录,以便我可以轻松查看构建进度。

tee的选项似乎仅限于--append--ignore-interrupts--help--version。那么还有另一种方法可以达到我想要做的事情吗?

0 投票
3 回答
6024 浏览

sql-server - 从 cygwin 窗口连接到 SQL Server 超时,从 DOS 提示符有效

我可以从 DOS 命令窗口通过 sqlcmd 连接到我的 SQL Server 数据库,但不能从 Cygwin 窗口连接。从 DOS:


一个测试

(1 行受影响)

==================================================== ==

来自 Cygwin:

HResult 0x35,级别 16,状态 1
命名管道提供程序:无法打开与 SQL Server [53] 的连接。Sqlcmd:错误:Microsoft SQL Native Client:建立与服务器的连接时发生错误。连接到 SQL Server 2005 时,此失败可能是由于在默认设置下 SQL Server 不允许远程连接。 Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired。

0 投票
4 回答
6235 浏览

cygwin - 在 cygwin 中挂载软盘映像

如何使用 cygwin 挂载软盘映像文件。我想挂载映像,将文件复制到挂载的驱动器,然后从命令行卸载它。

我知道您可以在 Windows 中使用虚拟软盘驱动器,但是在 Cygwin 中有没有办法做到这一点?

0 投票
11 回答
20191 浏览

windows - 为什么 GCC-Windows 依赖于 cygwin?

我不是 C++ 开发人员,但我一直对编译器很感兴趣,而且我对修补一些 GCC 的东西(尤其是 LLVM)很感兴趣。

在 Windows 上,GCC 需要 POSIX 仿真层(cygwin 或 MinGW)才能正确运行。

这是为什么?

我使用许多其他软件,用 C++ 编写并针对不同平台(Subversion、Firefox、Apache、MySQL)进行交叉编译,它们都不需要 cygwin 或 MinGW。

我对 C++ 最佳实践编程的理解是,您可以编写合理的平台中立代码并处理编译过程中的所有差异。

那么与 GCC 有什么关系呢?为什么它不能在 Windows 上本地运行?


编辑:

好的,到目前为止,这两个回复基本上说,“GCC 使用 posix 层,因为它使用 posix 标头”。

但这并不能真正回答问题。

假设我已经为我最喜欢的标准库准备了一组头文件。为什么我仍然需要 posix 标头?

GCC 是否需要 cygwin/mingw 才能实际运行

还是只需要头文件和库的仿真层?如果是这样,为什么我不能只给它一个包含所需资源的“lib”目录?


再次编辑:

好的,我会再次尝试澄清问题...

我还用D 编程语言编写代码。官方编译器名为“dmd”,并且有适用于 Windows 和 linux 的官方编译器二进制文件。

Windows 版本不需要任何类型的 POSIX 仿真。Linux 版本不需要任何类型的 Win32 仿真。如果编译器对其环境有假设,它会很好地隐藏这些假设。

当然,我必须告诉编译器在哪里可以找到标准库以及在哪里可以找到静态或动态链接的库。

相比之下,GCC 坚持假装它在 posix 环境中运行,它要求我通过设置一个仿真层来满足这些假设。

但是,在 GCC 中,究竟是什么依赖于该层?它只是在寻找 stdlib 标头,并假设它会在“/usr/lib”中找到这些标头吗?

如果是这样的话,我不应该告诉它在“C:/gcc/lib”中查找那些头文件吗?

或者 GCC 本身是否依赖 POSIX 库来访问文件系统(以及做其他低级的事情)?如果是这样的话,那么我想知道为什么他们不只是静态链接到他们最喜欢的 windows POSIX 库。当用户可以将这些依赖项直接构建到应用程序中时,为什么还要要求用户设置依赖项?

0 投票
2 回答
2438 浏览

regex - grep:匹配文字“+”

我需要在我的 sql 脚本(即 Oracle 外连接表达式)中找到出现的“(+)”。意识到“+”、“(”和“)”都是特殊的正则表达式字符,我尝试了:

现在这确实返回了“(+)”的出现,但也返回了其他行。(似乎任何在同一行上带有打开和关闭括号的东西。)回想一下,括号仅对扩展的 grep 是特殊的,我试过:

这两个都只返回包含“()”的行。所以假设“+”不能被转义,我尝试了一个老把戏:

这样可行。我使用非正则表达式工具交叉检查了结果。

问题:有人能解释一下“+”字符到底是怎么回事吗?是否有一种不那么笨拙的方式来匹配“(+)”?

(我正在使用 cygwin grep 命令。)

编辑:感谢您的解决方案。-- 现在我看到,根据 Bruno 引用的 GNU grep 手册,“ \+”在基本表达式中使用时赋予“+”其扩展含义,因此匹配一个或多个“(”后跟一个“) ”。在我的文件中总是“()”。