ubuntu 10 linux c,c++ gtk,qt 环境配置

本文介绍如何在Ubuntu系统中配置C语言、GTK和QT的开发环境。包括安装必要的软件包、配置GCC、安装GTK及QT环境的具体步骤,并提供测试程序以验证安装是否成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c==>gtk,c++==>qt


1、配置GCC
刚装好的系统中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件包,安装了这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。
可以在新立得里面搜索build-essential或输入下面命令:


sudo apt-get install build-essential


touch 一个test.c

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

$ gcc testc.c -o test
$ ./test

OK--->gcc编译环境成功

2.GTK
安装GTK环境只要安装一个gnome-core-devel就可以了,里面集成了很多其他的包。除此之外还要转一些其他的东西,如libglib2.0-doc、libgtk2.0-doc帮助文档,devhelp帮助文档查看,glade-gnome、glade-common、glade-doc图形界面设计等。

sudo apt-get install gnome-core-devel
还要一个图形库环境
sudo apt-get install glade-gnome

写一个GTK测试程序 gtkhello.c

#include<gtk/gtk.h>
void hello(GtkWidget *widget,gpointer data)
{
g_print("Hello Ubuntu!\n");
}
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
g_print ("delete event occurred\n");
return(TRUE);
}
void destroy(GtkWidget *widget,gpointer data)
{
gtk_main_quit();
}
int main( int argc, char *argv[] )
{
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello Ubuntu!");
gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window); /*显示一个窗口*/
gtk_main(); /*进入主循环*/
return(0);
}



测试--》

$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest



3.QT 安装

直接使用ubuntu自带的软件中心即可。


from ===>
http://forum.ubuntu.org.cn/viewtopic.php?f=162&t=40971&sid=e4f952a523cccd6a104d8170330e2892
### 在Ubuntu中使用GTKQT库的相关信息 #### 1. GTKQT库的区别 GTK(GIMP Toolkit)和QT是两种广泛使用的图形用户界面(GUI)工具包,它们在设计目标、编程语言支持以及生态系统方面存在显著差异。GTK主要以C语言为核心开发,而QT则以C++为核心[^2]。尽管GTK提供了面向C++的包装器GTKMM,但其本质仍然是基于C语言的工具包。相比之下,QT完全以C++为基础构建,因此在面向对象的设计和功能扩展上更为灵活。 - **编程风格**:GTK的API设计较为简洁,适合轻量级应用开发,而QT的API更加复杂,提供了更丰富的功能集,包括网络通信、多线程处理等。 - **跨平台支持**:两者都支持跨平台开发,但QT的跨平台能力更强,尤其是在移动设备和嵌入式系统上的支持更为完善[^2]。 - **许可证**:GTK采用LGPL许可证,允许开发者自由修改和分发代码,而QT提供双许可证模式(GPL/LGPL和商业许可证),为商业项目提供了更多选择。 #### 2. GTKQT库的安装 在Ubuntu中安装GTKQT库通常通过包管理器完成,以下为具体安装步骤: ##### 安装GTK库 要安装GTK及其开发环境,可以使用以下命令: ```bash sudo apt-get update sudo apt-get install libgtk-3-dev ``` 此命令将安装GTK 3.x版本的开发库及其依赖项[^1]。 如果需要安装GTKMM(GTKC++绑定),可以运行以下命令: ```bash sudo apt-get install libgtkmm-3.0-dev ``` ##### 安装QT库 对于QT的安装,可以选择安装特定版本的QT开发工具链。例如,安装QT 5.x版本: ```bash sudo apt-get update sudo apt-get install qtbase5-dev ``` 此外,还可以安装完整的QT Creator开发环境: ```bash sudo apt-get install qtcreator ``` #### 3. GTKQT库的依赖关系 GTKQT库各自依赖于不同的基础库和工具链。 ##### GTK的依赖关系 GTK依赖于以下核心库: - **GLib**:提供基本的数据结构和工具函数。 - **Pango**:用于文本布局和渲染。 - **Cairo**:提供2D图形绘制功能。 - ** ATK**:实现可访问性支持。 这些依赖项可以通过以下命令安装: ```bash sudo apt-get install libglib2.0-dev libpango1.0-dev libcairo2-dev libatk1.0-dev ``` ##### QT的依赖关系 QT的依赖关系相对复杂,主要包括以下内容: - **Qt Base模块**:包含核心功能,如事件循环、信号槽机制等。 - **Qt Widgets模块**:提供经典的桌面应用程序控件。 - **Qt GUI模块**:负责图形渲染和字体处理。 动态链接QT依赖于系统的标准C++库(如`libstdc++`)。静态链接,则需要额外配置以包含所有依赖项[^1]。 #### 4. 静态与动态链接的对比 在Ubuntu中,静态链接和动态链接的选择会影响应用程序的大小、性能和兼容性。 - **GTK的静态链接**:GTK本身不推荐静态链接,因为其设计更倾向于动态加载模块以提高灵活性[^1]。 - **QT的静态链接**:虽然QT支持静态链接,但在实际开发中可能会遇到问题,例如无法正确打包系统库或导致二进制文件过大。因此,动态链接通常是首选方案[^1]。 #### 5. 示例代码 以下是一个简单的示例,展示如何在C++中分别使用GTKQT创建窗口。 ##### 使用GTK创建窗口 ```cpp #include <gtk/gtk.h> int main(int argc, char *argv[]) { gtk_init(&argc, &argv); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "GTK Window"); gtk_widget_show_all(window); g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_main(); return 0; } ``` ##### 使用QT创建窗口 ```cpp #include <QApplication> #include <QMainWindow> int main(int argc, char *argv) { QApplication app(argc, argv); QMainWindow window; window.setWindowTitle("QT Window"); window.resize(640, 480); window.show(); return app.exec(); } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值