为学习C设置环境

时间:2016-11-04 02:00:22

标签: c linux windows gcc

我正在尝试通过遵循MIT OCW材料来学习C / C ++编程。我正在运行Windows PC,课程材料要求在Linux环境下使用gcc / g++编译器(用于C和C ++)运行所有C / C ++程序。他们还需要使用gdbvalgrind作为调试器。

我已经从MinGW软件包中安装了gcc / g++,并且想知道是否有关于如何实现设置的具体说明。现在,我希望能够设置Linux,gdbvalgrind,并至少编写一个简单的程序,并在Linux环境中编译和运行它。目前我还安装了VirtualBox,但由于某种原因,我创建的虚拟机始终显示以下消息:FATAL: No bootable medium found! System halted

我想我只是迷失在开始学习所需的所有软件包/工具中。我之前只使用过Microsoft Visual Studio,所以这些全新的命令提示和工具对我来说真的很混乱。如果有人可以给我关于如何从Windows PC启动并在Linux环境中使用gdbvalgrind编译和调试简单C程序的具体说明,那将会很棒。

1 个答案:

答案 0 :(得分:6)

我建议您使用VirtualBox创建虚拟机。这是最好的,因为它可以为您的开发环境提供沙箱,并且您可以使用真正的Linux环境.VirtualBox是免费的开源软件,您可能不需要在VMWare或Parallels中看到的任何高级功能。

现在您已经构建了环境,您可以创建项目文件夹所在的目录。在提示中,只需mkdir projectscd projectsmkdir helloworldcd helloworld。然后,您可以使用内置编辑器nano来编辑文件。输入nano hello.c,然后输入以下内容:

#include <stdio.h>
int main()
{
    printf("Hello, world\n");
}

然后输入Ctrl-O进行写出,然后输入Ctrl-X退出。

然后您只需要安装gcc,我建议同时安装make

$ sudo apt install gcc
...
$ sudo apt install make

现在在开发环境中编译和测试你的第一个程序:

$ make hello
$ ./hello

然后你应该在屏幕上看到Hello, world

Valgrind和Un-mount Disk

helloworld项目文件夹中输入sudo apt install valgrind,然后运行valgrind ./hello

最后,转到设置 - &gt;存储和卸载安装ISO。

SSH访问

使用以下命令安装openssh-server

sudo apt install openssh-server

键入ifconfig,找到Ubuntu主机的IP地址。然后,对于VirtualBox,转到Settings :: Network :: Advanced,然后点击Port Forwarding。使用以下设置:

Host IP: 127.0.0.1
Host Port: 22
Guest IP: (IP of Ubuntu VM)
Guest Port: 22

现在您可以ssh访问您的Ubuntu VM,并使用scp等工具。

共享文件夹

共享文件夹允许您拥有跨两个文件系统的介质,允许您在两个环境之间共享文件。此资源在不同方法中提供了更多详细信息:https://www.virtualbox.org/manual/ch04.html#sharedfolders。我将在此处详述的设置中详细介绍如何快速设置。

以下将安装VirtualBox共享文件夹所需的Linux标头:

sudo apt-get install build-essential linux-headers-`uname –r`

然后转到VirtualBox菜单的Devices标签,点击Insert Guest Additions CD image...

现在我们需要mount cdrom并运行脚本:

sudo mount /dev/cdrom /media/cdrom
sudo /media/cdrom/VBoxLinuxAdditions.run

找出要共享的Windows文件夹,并通过转到VirtualBox guest Machine :: Settings :: Shared Folders进行共享,然后使用选项{{1}添加它}和Auto-mount。完成后,请执行Make Permanent

共享文件夹会自动添加并存在于sudo reboot

您必须在/media/sf_*组中才能使用这些文件。使用此命令将用户vboxsf添加到该组:

testuser