c - 搭建学习C的环境

标签 c linux windows gcc

我正在尝试按照 MIT OCW Material 学习 C/C++ 编程。我正在运行 Windows PC,类(class) Material 要求在 Linux 环境下使用 gcc/g++ 编译器(用于 C 和 C++)运行所有 C/C++ 程序。它们还需要使用 gdbvalgrind 作为调试器。

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

我想我只是迷失在开始学习所需的所有软件包/工具中。我以前只使用过 Microsoft Visual Studio,所以这些全新的命令提示符和工具让我很困惑。如果有人能给我具体的说明,告诉我如何从 Windows PC 开始,并使用 gdbvalgrind 在Linux环境。

最佳答案

我建议您使用 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 和卸载磁盘

从您的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-mountMake Permanent 添加它。完成后,执行 sudo reboot

共享文件夹自动添加并存在于/media/sf_*

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

sudo usermod -aG vboxsf testuser
sudo reboot

关于c - 搭建学习C的环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40414183/

相关文章:

c - 如何在 Visual Studio 2019 中创建 C 项目?

c - 对结构的写入无效

linux - 代理必须指定为绝对URI; '192.168.3.10' 不在/usr/share/perl/5.26/CPAN/FTP.pm 第 355 行

linux - 可以在同一台主机上的特定端口上运行命令吗?

java - 如果进程正在运行,则执行此操作,否则执行此操作

c - 错误 : ‘::main’ must return ‘int’ void main(), 错误 : ‘strcmp’ was not declared in this scope z = strcmp(ch, ch1)?

windows - 如何在 Jenkins 构建期间在批处理命令中传递特定参数

wpf - 如何使用正确的 Windows 系统颜色?

python - AWS Boto 连接仅适用于 Windows Python shell

c - sizeof 运算符的操作数