在Linux(Ubuntu)中使用终端编译并运行.c和.cpp文件

25 篇文章 1 订阅

首先要保证系统中安装了C语言和C++对应的编译器:gcc -> C  ,g++ -> C++

1、.c文件的编译与运行

(1).c文件hello.c代码如下:

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

在当前路径下编译.c文件:

gcc -o hello hello.c

编译完成后可以看到在和hello.c相同目录下有一个hello的可执行文件。

在当前路径下运行编译后的可执行文件:

./hello

注意一定要加上路径才能运行,点表示当前路径。直接hello不添加路径,不能运行

(2)gcc指令举例

gcc hello.c         会默认生成一个a.out的可执行文件

gcc hello.c -o     会产生一个 hello 可执行文件

gcc hello.c -o myhello    会产生一个 myhello 可执行文件

(3)gcc的详细过程

详细过程可以分为四步:可以手动进行这四个步骤:

第一步:预处理。#号开头的代码全被解决掉(预编译,包含库,宏定义等等),产生一个后缀.i的文件以便下一步使用。

                gcc -E hello.c    (不会产生.i文件,文件内内容打印在了终端,所以需要将这些信息重定向到.i文件)

                gcc -E hello.c >> hello.i

第二步:编译。这一步主要检查语法错误。产生一个后缀.s的文件(汇编文件)

                gcc -S hello.i     (大写字母S)

第三步:汇编。产生后缀.o的object目标文件,二进制,但不可以运行,因为缺少库信息

                gcc -c hello.s

第四步:链接。添加库信息,产生一个后缀.o的可执行文件

                gcc hello.o -o hello


2、.cpp文件的编译与运行

.cpp文件hello.cpp代码如下:

#include<iostream>
using namespace std;
int main()
{
        cout << "Hello world !" << endl;
        return 0;
}

在当前路径下编译.cpp文件:

g++ -o hello hello.cpp

编译完成后可以看到在和hello.cpp相同目录下有一个hello的可执行文件。

在当前路径下运行编译后的可执行文件:

./hello

注意一定要加上路径才能运行,点表示当前路径。直接hello不添加路径,不能运行


Ubuntu 下,无法直接使用 `windows.h` 的 `MessageBox()` 函数,因为它是 Windows API 的一部分,与 Windows 操作系统紧密相关。 如果你想在 Ubuntu 上实现类似的功能,你可以考虑使用 Linux 提供的对话框库,如 Gtk+、Qt 或者 ncurses。 以 Gtk+ 为例,你可以按照以下步骤进行设置: 1. 确保已经安装了 Gtk+ 开发库。在终端运行以下命令安装所需的软件包: ``` sudo apt-get install libgtk-3-dev ``` 2. 创建一个新的 C++ 源文件,比如 `example.cpp`,并在其包含必要的头文件: ```cpp #include <gtk/gtk.h> ``` 3. 编写代码来创建和显示一个对话框,并添加按钮点击事件的处理函数: ```cpp static void show_dialog(GtkWidget* widget, gpointer data) { GtkWidget* dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Hello, Ubuntu!"); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); } int main(int argc, char* argv[]) { gtk_init(&argc, &argv); GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); GtkWidget* button = gtk_button_new_with_label("Show Dialog"); g_signal_connect(button, "clicked", G_CALLBACK(show_dialog), NULL); gtk_container_add(GTK_CONTAINER(window), button); gtk_widget_show_all(window); gtk_main(); return 0; } ``` 4. 编译并链接代码。在终端运行以下命令: ``` g++ example.cpp -o example `pkg-config --cflags --libs gtk+-3.0` ``` 5. 运行可执行文件: ``` ./example ``` 这样,你就可以在 Ubuntu使用 Gtk+ 库来实现类似 `MessageBox()` 的对话框功能了。 当然,如果你想在 Ubuntu 上直接使用 Windows API,而不安装 Wine 或其他 Windows 兼容层,那么是不可行的。因为 Windows API 是针对 Windows 操作系统开发的,无法直接在 Linux使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值