我正在尝试通过遵循MIT OCW材料来学习C / C ++编程。我正在运行Windows PC,课程材料要求在Linux环境下使用gcc
/ g++
编译器(用于C和C ++)运行所有C / C ++程序。他们还需要使用gdb
和valgrind
作为调试器。
我已经从MinGW软件包中安装了gcc
/ g++
,并且想知道是否有关于如何实现设置的具体说明。现在,我希望能够设置Linux,gdb
和valgrind
,并至少编写一个简单的程序,并在Linux环境中编译和运行它。目前我还安装了VirtualBox,但由于某种原因,我创建的虚拟机始终显示以下消息:FATAL: No bootable medium found! System halted
。
我想我只是迷失在开始学习所需的所有软件包/工具中。我之前只使用过Microsoft Visual Studio,所以这些全新的命令提示和工具对我来说真的很混乱。如果有人可以给我关于如何从Windows PC启动并在Linux环境中使用gdb
和valgrind
编译和调试简单C程序的具体说明,那将会很棒。
答案 0 :(得分:6)
我建议您使用VirtualBox创建虚拟机。这是最好的,因为它可以为您的开发环境提供沙箱,并且您可以使用真正的Linux环境.VirtualBox是免费的开源软件,您可能不需要在VMWare或Parallels中看到的任何高级功能。
现在您已经构建了环境,您可以创建项目文件夹所在的目录。在提示中,只需mkdir projects
,cd projects
,mkdir helloworld
,cd 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
。
在helloworld
项目文件夹中输入sudo apt install valgrind
,然后运行valgrind ./hello
。
最后,转到设置 - &gt;存储和卸载安装ISO。
使用以下命令安装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