Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
如何让gdb在windows下使用Eclipse CDT(找不到源代码)_Eclipse_Cygwin - Fatal编程技术网

如何让gdb在windows下使用Eclipse CDT(找不到源代码)

如何让gdb在windows下使用Eclipse CDT(找不到源代码),eclipse,cygwin,Eclipse,Cygwin,我安装了cygwin(最新的1.7.xx?),然后安装了EclipseCDT(Juno) 当我试图构建一个helloworld项目时,尽管eclipse确认安装了cygwin,但它还是不起作用 因此,我手动将c:\cygwin\bin添加到路径中,该路径找到了cygwin中的所有可执行文件,包括g++、make ld等 现在,eclipse可以构建该项目,但是在调试时,gdb启动并且找不到源代码。它声称找不到: /cygdrive/c/users/me/workspace/test1/test1

我安装了cygwin(最新的1.7.xx?),然后安装了EclipseCDT(Juno)

当我试图构建一个helloworld项目时,尽管eclipse确认安装了cygwin,但它还是不起作用

因此,我手动将c:\cygwin\bin添加到路径中,该路径找到了cygwin中的所有可执行文件,包括g++、make ld等

现在,eclipse可以构建该项目,但是在调试时,gdb启动并且找不到源代码。它声称找不到:

/cygdrive/c/users/me/workspace/test1/test1.cc . 即使它就在那里。好像cygwin的目录系统不起作用了

我可以从以下位置手动加载源:

c:\users\me\workspace\test1\test1.cc

调试器可以工作,但是下次我启动一个新项目时,我必须再做一次。 如何指导eclipse/cygwin组合正确查找源代码


或者,Mingw更容易吗?我在eclipse中也遇到过类似的问题,因为存在mingw,但构建失败,因为它找不到可执行文件。

我使用mingw+CDT,这让我非常满意。我安装了很多次,从未有过任何分歧。没有什么比你用cygwin做的配置更重要的了。为C/C++开发人员下载Eclipse(可能是您所做的),以使CDT(MinGW工具链->gdb+gcc)直接运行。将您的
\\MinGW\bin\
目录设置到您的
路径
中,您就可以开始了

注意:与Cygwin一样,MinGW提供了一个类似Linux的Shell


对于MinGW-64来说,现成的版本更难定位。请参阅。

查看此处“公共源代码查找路径”的设置:

以下是我如何使其工作的

  • I转到窗口==>Preferences==>C/C++==>Debug==>Source查找路径
  • 我添加了一个路径映射:projectsource
  • 在左侧我放置了Cygwin期望的路径,即.\home\MyName\projects,在右侧我放置了Windows路径,即C:\Cygwin\home\MyName\projects

  • 然后,当我调试时,它会发现源文件很好。

    转到Windows->Preference->C/C++->debug->source Lookup Path。添加以下“路径映射”

    \cygdrive\c -> c:\
    

    虽然以上都给出了很好的答案,但有时还是可能解决不了问题,呵呵

    假设您在C:中安装Cygwin,但您的eclipse工作区在D:中,那么您的安装有问题

    您只需打开cygwing shell并键入“mount”即可获得以下内容:

      Ritvika@Ashutosh ~
      $ ls
    
      Ritvika@Ashutosh ~
      $ mount
      C:/cygwin64/bin on /usr/bin type ntfs (binary,auto)
      C:/cygwin64/lib on /usr/lib type ntfs (binary,auto)
      C:/cygwin64 on / type ntfs (binary,auto)
      C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
      D: on /cygdrive/d type ntfs (binary,posix=0,user,noumount,auto)
    
      Ritvika@Ashutosh ~
      $
    
    这里我的项目都在D:\ECWorkSpace下,所以需要显示我的映射 在Eclipse中作为: /cygdrive/d:/

    因此,现在有了这些知识,就按照PathM说的去做吧

     1. goto Window ==> Preferences ==> C/C++ ==> Debug ==> Source Lookup Path
     2. Add a Path Mapping: Project Source
     3. On the left side put "cygdrive\d",  & on the right put : "D:\"
    
    这应该行得通。(对我来说的确如此:))
    您也可以查看此常见问题解答:

    您可能想重新表述问题,以显示您想问的真正问题。这太荒谬了。问题是如何让eclipse与wtih cygwin正确匹配,这样调试器就可以工作,而不必每次都手动告诉它每个源文件的位置。从我的问题来看,这一点似乎很明显。如果Mingw是一个选项,它是如何工作的,因为我也遇到过类似的问题。我仍然想知道如何修复cygwin问题,但现在Mingw的安装程序已经成功了。忘了告诉您,对于完整的64位选项(
    -m64
    ,…),您将需要
    Mingw-64
    )。请参阅我答案底部的链接。是否有办法通过.project文件与其他人共享此设置?@Danijel,是的。考虑到您的所有项目都位于Eclipse工作区文件夹中,只需将Cygwin的Eclipse工作区路径映射到您的Windows Eclipse工作区路径。该路径中的所有项目都将正确解析源文件。