我目前正在使用Windows 8.1,并且正在寻找安装GCC.我发现这样做的方法是通过MinGW和CygWin(最受欢迎).现在我想出了Windows的Windows子系统(WSL)和Windows 10中的Windows上提供的Bash.
问题1.是否可以通过Windows 10中的Bash安装GCC,并且它是否可以像在Linux发行版上那样工作.假设您有一个'helloworld.c'文件,如果我这样做,
> gcc helloworld.c
$ ./a
Run Code Online (Sandbox Code Playgroud)
在bash中我会得到输出(假设'helloworld.c'的内容很简单 - 一个cout声明.)
问题2.如果可能,那么哪种方法更适合在Windows上使用GCC.也就是说,a)MinGW或CygWin b)Windows上的Linux上的Bash.因为根据我对所读内容的理解,CygWin和MinGW会对它们上面开发的程序产生一些依赖性.
问题3.如果您已经阅读了这篇文章,那么请填写我对CygWin和MinGW的理解上的空白.也就是说,如果我只将其用于编译和运行代码片段而不是应用程序开发,那么我使用哪些内容并不重要,我是对的吗?因为代码(用C或FORTRAN编写),无论系统如何都会编译和执行,我是对的吗?
语境.我是一名从事数值计算(计算流体动力学)的学生,我的主要工作是在FORTRAN开发和运行CFD代码.我想要做的是在我的笔记本电脑上运行计算代码(我们主要使用FORTRAN),它在Windows上运行.我目前不打算为Windows或Linux开发应用程序或软件.但我仍然想知道事情是如何运作的,哪个是最好的选择.请详细解释.谢谢.
我正在使用windows 10 bash来使用tcpdump从教程中我发现听一个接口命令是:
tcpdump -i eth0 //eth0 is ethernet interface
tcpdump -i any // to listen to any interface
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我得到tcpdump:socket:无效的参数错误.注意:
tcpdump -D
Run Code Online (Sandbox Code Playgroud)
不会在控制台上打印任何内容.
networking tcpdump network-tools windows-subsystem-for-linux
我们有一个非常大的项目,总共有近15000次提交.我9.3使用WSL在我的Windows机器上运行Debian .我的git版本是2.17.0.
当我运行诸如此类的命令时git status,至少需要20秒才能完成.即使没有做出任何改变.
我尝试了多个旧版本的git甚至尝试过Ubuntu,但我仍然遇到了相同的结果.我已尝试在这里和其他网站上运行来自各个帖子的一堆命令,但它们都没有奏效.
有趣的事情:当我cmd.exe在Windows上打开或Git Bash时,运行只需不到一秒钟git status.
可能是什么导致了这个?我该怎么做才能解决这个问题?
我在 wsl 1 下有一个 ubuntu 工作正常并连接到互联网
只是升级到 wsl2 ,我无法从 bash ping google.com
但如果我降级到 wsl1,我可以 ping
我试过这个但没有用
Ethernet adapter vEthernet (WSL):
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::30a4:2612:6ee3:2390%142
IPv4 Address. . . . . . . . . . . : 192.168.0.103 …Run Code Online (Sandbox Code Playgroud) xfce4-terminal我在通过 Windows 任务栏上的按钮从 VcXsrv 下的 WSL 安装启动时遇到了一些困难。完成后,除了 xfce4-terminal 之外,我不需要任何 DOS 框/控制台/终端。我已经可以使用了,但是它太丑了。有人有更干净的方法吗?
这是我所做的工作:我在桌面上使用此目标创建了一个 Windows 快捷方式(全部在一行中,为了便于阅读,用换行符分隔):
\nC:\\Windows\\System32\\wscript.exe\n \\\\wsl$\\Ubuntu-20.04\\home\\peter\\bin\\windows\\startTerminal.vbs\nRun Code Online (Sandbox Code Playgroud)\nstartTerminal.vbs灵感来自10 Ways To Run Batch Files And Hide The Console Window \xe2\x80\xa2 Raymond.CC(少数不需要为此安装单独程序的解决方案之一!),它包含:
CreateObject("Wscript.Shell").Run "C:\\Windows\\System32\\wsl.exe -u peter --exec /home/peter/bin/windows/startTerminal.sh",0,True\nRun Code Online (Sandbox Code Playgroud)\n并startTerminal.sh包含:
export DISPLAY=localhost:0.0\nxfce4-terminal --command=/bin/zsh\nRun Code Online (Sandbox Code Playgroud)\n尽管我在 ~/.zshrc 中设置了 DISPLAY 环境,但显然需要设置 DISPLAY。除非您运行登录 shell,否则 wsl.exe 显然不会执行此操作。
\n一旦所有这些都正常工作,我可以将快捷方式拖到任务栏并单击那里。
\n我数数3,三个文件合作来实现这个简单的目标?我可以在不安装外部程序的情况下将其限制为一两个吗?
\n我真的很挣扎相对符号链接上WSL2它们在Linux的本地文件系统创建的,我想,当通过共享点访问文件\\wsl$\distro-name\whatever-他们只是打破。
我已经wsl2在我的 Windows10 中激活了。我有一个Ubuntu-20.04:
损坏的符号链接禁止我在“从 Windows 中的 IDE 编辑”时无缝地“在 wsl2 中执行”。
实际用例(但不限于):开发两个集成项目:一个带有应用程序的 repo 和另一个与库一起存在的 repo。该应用程序符号链接库:
/files/repos/my-nice-app/files/repos/my-nice-libmy-nice-app/libs/my-nice-lib 是一个符号链接 ../../my-nice-lib\\wsl$\Ubuntu-20.04\files\repos\my-nice-app通过此设置,该位置\\wsl$\Ubuntu-20.04\files\repos\my-nice-app\libs\my-nice-lib应映射到\\wsl$\Ubuntu-20.04\files\repos\my-nice-lib。
但它不起作用。IDE 中的所有代码完成都搞砸了,因为符号链接没有很好地解映射并且 IDE 无法读取库的类和定义。
每当我在 NTFS 文件系统中从 linux 创建符号链接时,它都会在 windows 中正确解码。
反面相同:如果我从 windows(使用 CMD 和mklink或 Powershell 使用New-Item)创建链接,它们会 …
目前,我正在使用 Docker 桌面与WSL2集成。我发现Docker Desktop自动为我创建了一个集群。这意味着我不必安装和使用Minikube或Kind来创建集群。问题是,如果我使用 Docker 桌面的“内置”集群,我如何启用Ingress Controller?我尝试创建一个Ingress来检查这是否有效,但正如我的猜测,它没有用。
我创建的 YAML 文件如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp
spec:
minReadySeconds: 30
selector:
matchLabels:
app: webapp
replicas: 1
template:
metadata:
labels:
app: webapp
spec:
containers:
- name: webapp
image: nodejs-helloworld:v1
---
apiVersion: v1
kind: Service
metadata:
name: webapp-service
spec:
selector:
app: webapp
ports:
- name: http
port: 3000
nodePort: 30090 # only for NotPort > 30,000
type: NodePort #ClusterIP inside …Run Code Online (Sandbox Code Playgroud) 在使用 WSL2 和 Windows 版 Docker Desktop 时,我似乎不断遇到网络问题。
\n通常,我可以通过查找 WSL2 实例的 IP 地址并从容器内部引用该 IP 地址,从 Docker 容器内部访问从 WSL2 实例(WSL2 所说的“分发”)启动的端口。但今天由于某种原因这不起作用了。当遇到 WSL2+DockerDesktop 问题时,我已经习惯了重新启动,但现在我想最终了解到底出了什么问题。
\n我非常确定,当我稍后重新启动时,一切都会好起来的。
\n您知道如何调试这个东西吗?
\n我还有一个公司 Forticlient VPN,可能会搞砸。但在这件事上我别无选择......;-(
\n我找到了IP:
\nWSL2:\xc2\xbb ip -br a\nlo UNKNOWN 127.0.0.1/8 ::1/128 \nbond0 DOWN \ndummy0 DOWN \nsit0@NONE DOWN \neth0 UP 172.26.183.209/20 fe80::215:5dff:fef9:cc5c/64 \nRun Code Online (Sandbox Code Playgroud)\n所以 WSL2 机器的 IP 地址是172.26.183.209。
现在,我有一个 Web 服务器在 WSL2 进程中侦听端口 8080,可以通过http://172.26.183.209:8080访问它,正如 WSL2 所确认nmap的curl:
networking docker windows-subsystem-for-linux docker-desktop wsl-2
我在 Ubuntu 上运行 WSL 2,在计算机上启动和运行 docker 时遇到一些问题。我安装了 Docker Desktop 并在后台运行,并且还启用了与 Ubuntu 的 WSL 集成。
当我尝试运行简单的 docker 命令(例如 )时docker --version,我收到此错误:
在此 WSL 2 发行版中找不到命令“docker”。我们建议在 Docker Desktop 设置中激活 WSL 集成。
有关将 Docker Desktop 与 WSL 2 结合使用的详细信息,请访问:
https://docs.docker.com/go/wsl2/
我已经访问了该链接并按照它提供的所有说明进行操作,启用了 WSL 与 Ubuntu 的集成,如下所示:
但是我收到的错误仍然是相同的。有谁知道如何解决这一问题?
注意:我可以在 PowerShell 和命令提示符中运行 Docker 命令(例如docker --version),但在 Ubuntu 中无法识别。
ubuntu docker docker-compose windows-subsystem-for-linux wsl-2
操作系统:Windows 11 WSL2;IDE:Goland 最新
我正在尝试打开 IDE Goland,但当 IDE 尝试为我的项目建立索引时出现此错误。
warning: GOPATH set to GOROOT (/usr/local/go) has no effect
go: mkdir /usr/local/go/pkg/mod: permission denied
go: github.com/MyCompany/common-backend@v1.0.56: mkdir /usr/local/go/pkg/mod: permission denied
Run Code Online (Sandbox Code Playgroud)
不过,我已经这样安排了
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin
Run Code Online (Sandbox Code Playgroud)
这是我对 WSL for Go Path 怀念的东西吗?