Redhat Linux9 Gnome桌面上搭建C/C++IDE开发环境

2023-11-21 16:58

本文主要是介绍Redhat Linux9 Gnome桌面上搭建C/C++IDE开发环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

张善友(shanyougz@21cn.com) 软件开发工程师

原文在我的网站http://shanyou.sti.gd.cn/cplusplus/GTK2/anjuta.html 

    Redhat linux上面没有提供Anjuta软件包,上面提供了一个Glade应用程序界面设计工具.linux上面使用Anjuta和Glade以及Glademm软件包可以搭建一个linux下面进行C/C++软件开发的IDE环境,可以进行GTK+/Gnome的应用程序开发.

   以前开发 Linux 程序时写出好的图形化用户界面比较难. 在 GIMP 工具包 (GTK)诞生之后, 这件事就变得比较容易了. 当 Damon Chaplin 写出 GLADE 这个用于在 GTK 环境下生成图形化用户界面的工具后, 就更容易了. 但是 GLADE 仍然不能算是一个“集成开发环境”(如 Visual Basic 等等.), 因为程序员不能在 GLADE 的环境下手动修改 GLADE 产生的代码。现在,这一切都已成为过去: Anjuta诞生了!

    Anjuta 利用 GLADE 生成优美用户界面的能力,加之以自己强大的源程序编辑能力, 正成为一个极好的应用程序快速开发的集成环境(IDE). 以前,人们使用 GLADE 做界面,用 emacs 或 vi 等等编辑程序,再用某种终端模拟器编辑开发项目. 使用 Anjuta, 所有这些繁杂零散的任务都可以在一个统一的、集成的、自然而然的环境下完成.

一、 软件准备:

下载libzvt-2.0.1-0.ximian.6.6.i386.rpm 

http://tux.cprm.net/pub/ximian/xd2/redhat-9-i386/libzvt-2.0.1-0.ximian.6.6.i386.rpm

下载anjuta-1.1.97-1.rh90.i386.rpm

http://rpm.pbone.net/index.php3/stat/4/idpl/772608/com/anjuta-1.1.97-1.rh90.i386.rpm.html

下载anjuta-1.0.2-1.i386.rpm

http://heanet.dl.sourceforge.net/sourceforge/anjuta/anjuta-1.0.2-1.i386.rpm

下载gtkmm2-2.2.3-fr1.i386.rpm

http://ftp.freshrpms.net/pub/freshrpms/redhat/9/gtkmm2/gtkmm2-2.2.3-fr1.i386.rpm

下载gtkmm2-devel-2.2.3-fr1.i386.rpm

http://ftp.freshrpms.net/pub/freshrpms/redhat/9/gtkmm2/gtkmm2-devel-2.2.3-fr1.i386.rpm

下载libsigc++-1.2.5-fr1.i386.rpm

http://ftp.freshrpms.net/pub/freshrpms/redhat/9/libsigc++/libsigc++-1.2.5-fr1.i386.rpm

下载glademm-1.1.3d-SNAP.i586.rpm 

http://loban.caltech.edu/gchch/glademm-1.1.3d-SNAP.i586.rpm
下载libsigc++-devel-1.2.5-fr1.i386.rpm

http://ftp.freshrpms.net/pub/freshrpms/redhat/9/libsigc++/libsigc++-devel-1.2.5-fr1.i386.rpm

二,安装软件包

安装redhat linux 9选择安装上软件开发项,这样就安装上了Glade,然后以root用户登陆,安装如下软件包.

rpm -ivh libzvt-2.0.1-0.ximian.6.6.i386.rpm //anjuta的依赖软件包

rpm -ivh ibsigc++-1.2.5-fr1.i386.rpm

rpm -ivh gtkmm2-devel-2.2.3-fr1.i386.rpm

rpm -ivh ibsigc++-devel-1.2.5-fr1.i386.rpm

rpm -ivh gtkmm2-2.2.3-fr1.i386.rpm

rpm -ivh glademm-1.1.3d-SNAP.i586.rpm

rpm -ivh anjuta-1.0.2-1.i386.rpm

rpm -Uvh anjuta-1.1.97-1.rh90.i386.rpm

注:直接安装anjuta-1.1.97会发现无法编译软件,这里要注意的几个问题

       1. 要安装 Ximian版本的 libzvt 软件包,就是要安装我上面提到那个

    1. 要先安装 Anjuta 1.0.1,然后才updated via rpm -Uvh Anjuta 1.1.97

三, 进行开发第一个Anjuta1.1.97上的C/C++的程序

让我们先用 Anjuta 建立一个简单的Hello World 程序.

  • 建立一个新的项目

   先请打开 Anjuta. 请选择菜单项 编程-> 更多编程工具-->Anjuta IDE. GNOME应用程序精灵 "GNOME2.0 Application Wizard" 将会出现. 尽管人们只要点击“下一个”(Next)按钮就可以,而不必去管精灵对话框上有些什么信息,这里还是希望您能读一下对话框上的每一条信息。现在,在您读完精灵第一步的对话框上的信息后,请按Next 按钮。

第二步非常关键。这里您需要决定您要建立的应用程序的类型。让我们选择 "Gnome2.0 project" ,然后继续走下去。 第三步要确定应用程序的基本配置。请非常仔细地填入应用程序的配置信息。在本教程中,请输入以下信息。

  • 项目名称: HelloWorld(程序项目名)注意项目名称中间不能有空格

  • 程序版本: 0.1(版本号)

  • 程序作者: (你的名字)

  • 程序名称: helloworld(程序名)

  • 程序语言: 有C,C++和C/C++三种选择,这里选择C

  • 程序类型: 有三种选择可执行程序,动态链接库和静态链接库.

下面第四步编写项目的描述信息;

第五步是项目的其他选项,GNU版权声明和程序的本地化支持项,如果您不想要,您可以去除 他们. 您最好为本应用程序项目选择一个图标,该图标将会出现在GNOME 应用程序菜单中。这里我们选取 Hello World example作为项目名, 在 Group 域选取 Applications。最后点击 Next 按钮和 Finish 按钮。这时本应用程序项目就建立起来了。

因为我们只是在建立一个例子程序,我们可以轻松前行。如果我们是在建立一个要在现实世界使用的应用项目, 那我们在填写应用程序精灵每一步的参数时可要格外小心,因为它们对您的应用程序项目来说非常重要。

  • 设计用户界面

   在与应用程序精灵对话结束之后, Anjuta 就开始建立您的应用程序项目的目录结构,运行参数配置脚本并建立应用项目本身。 整个创建过程的进行情况显示在 Anjuta 开发环境的下部。创建过程结束后, 屏幕的左边示出应用项目树结构。这个树结构中包含您的源程序文件,说明文件和图形文件。


现在是启动 GLADE 并用其设计图形用户界面的时候了。请到菜单项 项目->编辑图形界面 去运行 GLADE。 您将看到三个窗口: 1) Glade 主窗口, 2) 属性窗口, and 3) 绘图工具窗口。

取一个简单的 GTK 视窗就行了。请点击 Glade 主视窗上列出的第一项 (hello_app), 然后按 Del 删除键。现在到工具视窗(Palette), 点击第一个图标。这时一个空白的 GtkWindow 建起来了。这将是我们的应用程序的主视窗 window1。再到属性视窗(Properties),敲入标题“Hello World!”. 现在再到工具视窗上选取一个表格(table)2行2列放到主视窗 window1 上。这样,主视窗被切分为同等大小的4个部分。

现在再从工具视窗中取出两个按钮,分别加到主视窗下面的两个框中。再把这两个按钮的名字和标签属性设置如下:

左按钮:

名字: BT_OK

标签: OK

右按钮:

名字: BT_EXIT

标签: Exit

在视窗的上半部,左边再加上一个标签控件;在上半部右边加上一个输入框 Entry 控件。该输入框的名字取为 ENTRY。将上述标签控件的标签属性置为 'What's your name, sir?'.

现在在属性视窗的属性档(Signals tab)上把两个按钮都和 Clicked事件连接起来. 使用GLADE预设的反向调用函数名. 请不要忘记点击 Add 按钮.这种常见的错误会导致产生空白的 callbacks.c 文件. 在源文件callbacks.c上,我们将会通过 Anjuta界面加入 源代码.

现在,主视窗看起来似乎不那么漂亮。您可以试试改变视窗的宽度和高度,以及试试改改水平和垂直包容框的几个属性, 看看能不能让视窗好看些。(注意:您可到菜单View,选择控件树,然后选择控件。 ) 下面是一些属性的设置:

*将下面的水平包容框的属性 Homogeneous 置为Yes;

*将属性视窗的定位档的按钮的属性 Fill 置为 Yes;

*将主视窗 window1 的属性 Grow 置为No.

把这些属性改来改去后,我的主视窗的样子如下:


设计好界面后,在Glade主视窗上点击“存盘”按钮,然后再点击“联编”按钮. 这就按您新设计的界面更新了您的 应用项目的src目录下的源文件 interface.c。现在,让我们选菜单 Project -> Exit,回到 Anjuta 用户界面下。开始编程啦!

  • 编辑程序

  现在回到 Anjuta 环境中来,您应该可以在屏幕左边的项目源程序列表中看到 callbacks.c. 双点击打开该程序. 这样我们在Anjuta集成开发环境的左边就可以编辑该程序了。

有时一事物如果是有色彩的话就会变得更容易理解、更有趣。Anjuta 的“语法强调色”功能 (在“Format”菜单上)就属于这种情况. Anjuta还有很多很多有用的功能,您可以慢慢品玩。 也许现在花点时间熟悉熟悉这个集成环境是很有好处的。

现在回到 callbacks.c 文件,我们看到两个反向调用函数: on_BT_OK_clickedon_BT_EXIT_clicked. 让我们在第二个函数中加入一个函数调用:gtk_main_quit()。 这样,该函数变成:

#ifdef HAVE_CONFIG_H

# include <config.h>

#endif

#include <gnome.h>

#include "callbacks.h"

#include "interface.h"

#include "support.h"

void on_BT_OK_clicked(GtkButton *button, gpointer user_data)

{

    gtk_main_quit();

}

这个函数调用的目的是当用户点击退出按钮时,整个应用程序会结束。 与此相仿,我们在 on_BT_OK_clicked函数中加入下列函数调用:

void on_BT_OK_clicked (GtkButton *button, gpointer user_data)

{

    GtkWidget *entry = lookup_widget (GTK_WIDGET(button), "entry");

    GtkWidget *msgbox = gnome_app_new("Hello World", "Hello World");

    gchar *text1, *text2;

    text1 = gtk_entry_get_text (GTK_ENTRY(entry));

    text2 = strcat ("Hello, ", text1);

    gnome_app_message (GNOME_APP(msgbox), text2);

}

  • 生成目标代码,执行,以及发行

   现在到了测试您程序的时候了;这一定很有趣。先选择菜单项 创建->创建项目。 这时Anjuta就开始编译和链接项目里的源程序main.c, interface.c, support.c and callbacks.c, 然后将产生的可执行文件hello放到 src 目录。编译器一般会用 gcc。

如果您幸运, 编译过程没有任何错误信息的话,请选菜单项 创建->执行程序 于是Anjuta 开辟一个终端视窗,并在其上运行您的应用程序 HelloWorld! 请在输入框上输入您的名字,然后点击 OK 按钮. 希望这时您的应用程序回您一个问候:Hello ... 您可再敲入一个问候词,然后点退出按钮 Exit,看看程序能否正常退出。如果正常退出,那真好! 您的辛勤劳动终于有了结果!

这时您可把您的应用程序安装到视窗系统中去:选菜单项 创建->安装 尽管您现在也许并不想为您的应用程序创建一个tarball文件, 但也许以后您要发行软件时就需要这样做了。 在发行应用程序前,务必要填好 TODO,ChangeLog, INSTALLREADME 这几个文件. 要创建一个应用程序的发行版,请点击 创建->创建发行套件 创建过程也许会持续几秒钟,最终会在 /home/(username)/Projects/helloworld/ 目录下建立一个文件 helloworld-0.1.tar.gz

这篇关于Redhat Linux9 Gnome桌面上搭建C/C++IDE开发环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/403730

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来