Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 通过gitbash使用GCC_C++_Git_Bash_Gcc_Msys2 - Fatal编程技术网

C++ 通过gitbash使用GCC

C++ 通过gitbash使用GCC,c++,git,bash,gcc,msys2,C++,Git,Bash,Gcc,Msys2,我的Windows 7计算机上安装了Git for Windows 2.10.2和最新版本的MSYS2。我一直在使用一个旧版本的MIW编译C++代码。我将使用notepad++编写/编辑文件,并使用gcc控制台命令通过GitBash编译和运行它们。我喜欢能够转到我的文件目录,右键单击,然后选择“Git Bash Here”选项来打开控制台并执行我需要的任何操作 卸载MinGW后,我安装了MSYS2,并使用MSYS2附带的包管理器Pacman下载了其中的一些包。我还更新了路径变量。我用Git Ba

我的Windows 7计算机上安装了Git for Windows 2.10.2和最新版本的MSYS2。我一直在使用一个旧版本的MIW编译C++代码。我将使用notepad++编写/编辑文件,并使用gcc控制台命令通过GitBash编译和运行它们。我喜欢能够转到我的文件目录,右键单击,然后选择“Git Bash Here”选项来打开控制台并执行我需要的任何操作

卸载MinGW后,我安装了MSYS2,并使用MSYS2附带的包管理器Pacman下载了其中的一些包。我还更新了路径变量。我用Git Bash通过键入以下命令来测试一切:

gcc --version
gcc --version
我一直在犯这个错误

OWNER@Seth MINGW64 /c
$ gcc --version
      2 [main] gcc (5284) C:\msys64\usr\bin\gcc.exe: *** fatal error -       cygheap base mismatch detected - 0x1802FF408/0x1802FE408.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
Segmentation fault

OWNER@Seth MINGW64 /c
$
我从未使用过Cygwin,因此从未在这台计算机上安装过它。我花了三天时间在网上搜索解决方案。我已经卸载并重新安装了Git和MSYS2。我将git-bash.exe放在我的c:\msys64\目录中,并从那里运行相同的命令,得到:

OWNER@Seth MINGW64 ~
$ gcc --version
gcc.exe (Rev2, Built by MSYS2 project) 6.2.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


OWNER@Seth MINGW64 ~
$
但在我看来,这并不是一个非常优雅的解决方案。不过它确实可以工作,我可以将cd刻录到包含代码的文件夹中,然后编译并运行它们

我尝试的另一件事是进入注册表并更改“Git-Bash-Here”选项查找Git-Bash.exe的位置。我把它改成:

"C:\program files\Git\git-bash.exe" "--cd=%v."

现在右键单击并选择“Git Bash Here”并运行以下命令:

gcc --version
gcc --version
结果:

OWNER@Seth MINGW64 ~
$ gcc --version
gcc.exe (Rev2, Built by MSYS2 project) 6.2.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


OWNER@Seth MINGW64 ~
$
再一次,我可以用我的代码cd到文件夹中,编译并运行它们。 现在的问题是,在Git Bash打开之前,它会在我右键单击的目录中查找。但现在我必须去我想去的地方


有没有更好的方法让MSYS2和Git一起工作?我是不是让这条路变得更难了?还是有更好的方法,而我只是在黑暗中蹒跚而行?

我现在已经尝试了Cygwin,并获得了类似的结果。Ok GCC可以通过Cywgin控制台、标准windows命令提示符和Git控制台正常工作。我仍然遇到的问题与我原来的帖子相同,我无法通过Git Bash控制台让GCC工作。我不明白为什么它能与Git控制台一起工作,而不能与Git Bash控制台一起工作。。。困惑了吗?因为我是…若GCC通过Cygwin控制台工作,那个么你们为什么要通过Git Bash控制台使用GCC呢?更好的是,如果Cygwin控制台可以处理这个问题,为什么要起诉Git Bash控制台?说来话长。我以前工作过。不再工作了。厌倦了与之战斗。谢谢你的帮助。@StevenPenny我肯定更喜欢Git Bash而不是Cygwin,如果我不需要的话,我更愿意不安装Cygwin。