我正在尝试按照 MIT OCW Material 学习 C/C++ 编程。我正在运行 Windows PC,类(class) Material 要求在 Linux 环境下使用 gcc
/g++
编译器(用于 C 和 C++)运行所有 C/C++ 程序。它们还需要使用 gdb
和 valgrind
作为调试器。
我已经从 MinGW 包中安装了 gcc
/g++
,想知道是否有关于如何实现设置的具体说明。现在我希望能够设置 Linux、gdb
和 valgrind
并且至少编写一个简单的程序并在 Linux 环境中编译和运行它。现在我还安装了 VirtualBox,但出于某种原因,我创建的虚拟机总是给出以下消息:FATAL: No bootable medium found!系统停止
。
我想我只是迷失在开始学习所需的所有软件包/工具中。我以前只使用过 Microsoft Visual Studio,所以这些全新的命令提示符和工具让我很困惑。如果有人能给我具体的说明,告诉我如何从 Windows PC 开始,并使用 gdb
和 valgrind
在Linux环境。
最佳答案
我建议您使用 VirtualBox 创建虚拟机。这是最好的,因为它可以将您的开发环境沙箱化,并且您可以在真正的 Linux 环境中工作。VirtualBox 是免费和开源的,您可能不需要任何您可能在 VMWare 或 Parallels 中看到的高级功能。
- 下载 VirtualBox ( https://www.virtualbox.org/wiki/Downloads )
- 下载 Ubuntu 服务器 ( https://www.ubuntu.com/download/server )
- 创建一个新的虚拟机 (VM)
- 将 Ubuntu ISO 文件安装到 VM(设置 -> 存储,选中“Live CD/DVD”并单击磁盘图标浏览 ISO)
- 按照屏幕上的说明启动 VM 并安装 Ubuntu
现在您已经构建了环境,您可以创建一个目录来放置您的项目文件夹。根据提示,只需执行 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
。
Valgrind 和卸载磁盘
从您的helloworld
项目文件夹中输入sudo apt install valgrind
,然后运行valgrind ./hello
。
最后,转到设置 -> 存储并卸载安装 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 虚拟机,还可以使用 scp
等工具。
共享文件夹
共享文件夹允许您拥有跨越两个文件系统的媒介,允许您在两个环境之间共享文件。此资源提供了不同方法的更多详细信息:https://www.virtualbox.org/manual/ch04.html#sharedfolders .我将在此处详述的设置中介绍如何快速设置它。
以下将安装 VirtualBox 共享文件夹所需的 Linux header :
sudo apt-get install build-essential linux-headers-`uname –r`
然后转到 VirtualBox 菜单的 Devices
选项卡并单击 Insert Guest Additions CD image...
。
现在我们需要挂载
cdrom
并运行脚本:
sudo mount /dev/cdrom /media/cdrom
sudo /media/cdrom/VBoxLinuxAdditions.run
确定您要共享的 Windows 文件夹,然后转到 VirtualBox guest Machine
::Settings
::Shared Folders
进行共享并使用选项 Auto-mount
和 Make Permanent
添加它。完成后,执行 sudo reboot
。
共享文件夹自动添加并存在于/media/sf_*
。
您必须在 vboxsf
组中才能使用这些文件。使用此命令将用户 testuser
添加到该组:
sudo usermod -aG vboxsf testuser
sudo reboot
关于c - 搭建学习C的环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40414183/