11

I've installed Eclipse Neon (v4.6). Also, I have "Bash on Ubuntu on Windows" (Sept '16). I installed gcc and gdb for compiling and debugging in C. I tested them on terminal and they're running.

I'm trying to use Eclipse to create a new C project but in the compiler selection stage it doesnt give me the option to use the "Bash on Ubuntu on Windows" compiler.

Is there any way to solve my problem?

4

6 回答 6

5

bash.exe -c ...因为 Bash/WSL 是相当新的,并且许多开发工具(还)不太了解从 Bash 外部正确调用 Linux 命令(使用)的能力,所以您可能需要做一些工作来定义自定义任务/操作以调用必要的bash.exe -c "gcc ..."您要调用的命令。

但是,您绝对应该能够编写/配置一个可以将路径切换到 lib/include/tools/etc 的 makefile(或者甚至更好的 CMake 文件)。基于环境,然后在Windows或Linux上顺利构建。

这个场景激发了我写一篇很酷的博客文章的想法,我将在接下来的一两周内完成并发布到我们的博客 https://blogs.msdn.microsoft.com/commandline :)

HTH。

于 2016-12-01T00:45:22.433 回答
4

我认为使用 wsl 进行 C/C++ 编程的最佳方式就像微软那样。Visual Studio 使用 ssh 连接到“C++ for Linux Development”的 linux 环境。因此,在我们的例子中,我们可以在 wsl 上设置 openssh 服务器,从您的 IDE 连接到 localhost 并启动远程项目。

2017 年 5 月

于 2017-05-15T07:53:10.457 回答
3

我们使用 Eclipse 和一个 makefile 项目。我通过添加“外部构建器”来配置 Eclipse - 并使用以下脚本:

-c "cd `echo '${project_loc}' | sed  -e 's/C:/\/mnt\/c/g' -e 's/\\\\/\//g'` && make -f path_to_makefile/makefile

" cd"sed技巧是从 Eclipse "C:\" 转换为 Windows Subsystem for Linux " /mnt/c/" 并将 " \" 替换为 " /"

Make 现在在定义的项目位置执行${project_loc}

我还没有弄清楚如何在 Linux 上执行 gdb。但至少 compile+link(并执行我的 makefile 中定义的单元测试)现在正在利用本机 Ubuntu 工具链的全速......

于 2017-05-15T06:52:15.007 回答
2

我有一些更好的方法...您可以添加新的用户终端并在本地终端设置下的 Eclipse 中提供“Ubuntu.exe”位置,如屏幕截图所示。

在我的情况下,目录是......

  • C:\Users\MyuserName\AppData\Local\Microsoft\WindowsApps\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc

如果 eclipse 无法选择 ubuntu16.4.exe,则在路径中手动写入。如图所示。 看到这个...

现在只需单击应用并关闭。打开终端(Ctrl+Alt+Shift+T)并选择 Ubuntu 终端。

现在,通过终端导航到源目录并编译您的项目。享受...

于 2018-11-24T13:00:13.977 回答
1

最初我遵循 espenalb 的建议,但它没有正确解析我的构建输出:双击行没有打开文件,也没有转到出现错误的行。

我最终更改了内置 CDT 构建器(而不是添加外部构建器)。我将构建命令更改为以下(alex 是我的用户名):

bash.exe -c make 2>&1 | sed -e 's/\\/home\\/alex/C:\\\\Users\\\\alex/g' -e 's/\\//\\\\/g'

这样,make 输出就从带有“/home/alex”的路径转换为“c:\users\alex”下的相同路径。这解决了解析问题。

我还遇到了 eclipse 用“构建未正确配置”替换构建输出的问题 - 我通过禁用项目属性的“构建器”子菜单中的“扫描仪配置构建器”来修复它(它是一个 C Makefile 项目)。此外,需要从默认构建命令中删除目标“all”和“clean”。

于 2018-08-19T10:26:04.587 回答
0

又一个变种。我设法使用设置为的外部构建器命令进行构建

bash.exe -c "cd '${project_loc}' && cd directory_where_the_Makefile_is && make -j8"
于 2022-02-15T10:36:55.470 回答