如何在cygwin中启动X窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在cygwin中启动X窗口相关的知识,希望对你有一定的参考价值。

参考技术A 我的cygwin是1.5.25-15perl版本是v5.10.0操作系统win732位旗舰版你给出的程序是想由标准输入读入多行,然后把1234567890输出3遍,再把读入的信息输出。我把程序拷出来,把第一行换成#!/usr/bin/perl-w就可以正常执行了。输入完成后,需要按ctrl+d 参考技术B 终端会以C:Cygwin主目录作为开始,但是那可能没有用处,因为你可能并没有在那里放置任何文件。你可以使用所有基本的Linux命令,但是要返回C:盘根目录的话你必须切换目录到/cygdrive/c。 要想在Windows命令提示符下使用Cygwin,你需要添加Cygwin...本回答被提问者采纳

程序无法启动,因为缺少 cygwin1.dll...在 Eclipse CDT 中

【中文标题】程序无法启动,因为缺少 cygwin1.dll...在 Eclipse CDT 中【英文标题】:The program can't start because cygwin1.dll is missing... in Eclipse CDT 【发布时间】:2011-10-08 19:35:56 【问题描述】:

我已经在我的计算机上安装了 Java 版 Eclipse 几年了,我决定安装 CDT 并学习 C。我同时安装了 MinGWCygwin,并且 CDT 在我制作时检测并尝试使用它们一个新项目。

我选择File > New C++ Project 并选择Hello World C++ ProjectCygwinGCC 工具链。我将项目命名为“asdf”并点击工具栏中的“Build Debug”。编译器完成没有错误。我点击运行,没有任何反应。

手动浏览到项目目录并运行 asdf.exe 给我一个错误提示:"The program can't start because cygwin1.dll is missing from your computer. Try reinstalling the program to fix this problem."

使用 MinGW 也会发生同样的情况,只是缺少一个不同的 dll。我需要做什么才能获得可用的 .exe? (我运行的是 Windows 7 x64 和最新版本的 Eclipse 和 CDT。)

编辑: 编译器输出如下:

**** Build of configuration Debug for project asdf ****

make all 
Building file: ../src/asdf.cpp
Invoking: Cygwin C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/asdf.d" -MT"src/asdf.d" -o"src/asdf.o" "../src/asdf.cpp"
cygwin warning:
  MS-DOS style path detected: C:\Users\Shawn\Dropbox\eclipse\asdf\Debug
  Preferred POSIX equivalent is: /cygdrive/c/Users/Shawn/Dropbox/eclipse/asdf/Debug
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Finished building: ../src/asdf.cpp

Building target: asdf.exe
Invoking: Cygwin C++ Linker
g++  -o"asdf.exe"  ./src/asdf.o   
Finished building target: asdf.exe

【问题讨论】:

【参考方案1】:

此错误消息表示 Windows 无法找到“cygwin1.dll”。 Cygwin gcc 创建的程序依赖于这个 DLL。该文件是 cygwin 的一部分,因此它很可能位于 C:\cygwin\bin 中。要解决此问题,您只需将 C:\cygwin\bin(或可以找到 cygwin1.dll 的位置)添加到系统路径。或者,您可以将 cygwin1.dll 复制到您的 Windows 目录中。

有一个名为 DependencyWalker 的好工具,您可以从 http://www.dependencywalker.com 下载。您可以使用它来检查可执行文件的依赖关系,因此如果您检查生成的程序,它会告诉您缺少哪些依赖项以及解决了哪些依赖项。

【讨论】:

我要补充的是,您可以将 DLL 复制到与 exe 相同的目录中。 VisualStudio 构建的 exe 通常也有依赖关系,例如到 MSVCR71.DLL @Marco:你为什么不把C:\cygwin64\bin添加到你的系统路径中呢?我猜你的二进制文件编译为 64 位。 @phlogratos 我打错了,忘记在最后一个文件夹前添加;,还输入了C:cygwin64\bin。问题现已解决。 如果一个程序需要cygwin1.dll,是否意味着它也需要安装cygwin?或者只要 dll 存在,它就可以在任何机器上运行? 对我来说,将cygwin1.dll 添加到C:\windows 目录时有效。【参考方案2】:

您可以使用 Cygwin 的 g++ 或 MinGW(通过独立或使用 Cygwin 包)进行编译。但是,为了运行它,您需要在任何 cygwin 样式路径之前将 Cygwin1.dll(和其他)PATH 添加到 system Windows PATH。

因此将:;C:\cygwin64\bin 添加到您的 Windows 系统 PATH 变量的end

此外,要编译以在 CMDPowerShell 中使用,您可能需要使用:

x86_64-w64-mingw32-g++.exe -static -std=c++11 prog_name.cc -o prog_name.exe

(这会调用交叉编译器,如果已安装。)

【讨论】:

非常感谢@not2qubit 的帮助。但是您忘记在 ';C\cygwin64\bin' 字符串中放一个冒号,就在 'C' 之后。我认为编辑您的答案会更好。因为一开始我有点迷茫。最好的... 嗨@SANN 我现在已经修好了。谢谢【参考方案3】:

要添加到这个并保存另一个 google,只需在 cmd 中执行此操作:

set PATH=%PATH%;C:\cygwin64\bin

【讨论】:

以上是关于如何在cygwin中启动X窗口的主要内容,如果未能解决你的问题,请参考以下文章

Cygwin/X x11 从 Raspberry Pi 转发到 Windows

如何让cygwin启动时进入指定目录

如何在 Emacs 中运行 Cygwin Bash Shell?

jQuery Mobile 1.4.x:如何在应用启动 5 秒后弹出一个弹出窗口

如何在Windows中通过Cygwin来使用Linux命令行

如何使用 cygwin 在 Windows 上构建 zeromq?