编译GLib C程序
编译GLib C程序
GLib是GTK +所需的实用程序库,但也可以在非GUI应用程序中独立使用。本文介绍如何在Linux中编译使用GLib的C程序。它还显示了如何为系统上安装的GLib版本安装正确的文档,以及如何查找当前安装的GLib库的版本号。
本文使用的命令和库已在Linux Mint 18上进行了测试,但应在所有基于Debian的Linux发行版(包括Ubuntu)上运行。在编译程序之前,请确保已在系统上安装了GLib开发库:
sudo apt-get install libglib2.-dev
编译一个简单的GLib C程序
下面的示例程序是一个使用GLib函数编写的简单的“ Hello World” C程序。代码清单下方显示了有关在Linux中编译程序的说明。
#include <glib.h> int main(void)
{
g_print("Hello, world!\n");
return ;
}
在命令行中使用以下命令来编译上述程序:
gcc main.c `pkg-config --cflags --libs glib-2.0` -o hello
在上面的行中,使用反引号(`)而不是单引号(')将pkg-config及其选项括起来。或使用:
gcc main.c $(pkg-config --cflags --libs glib-2.0) -o hello
可以从命令行如下运行名为hello的已编译程序:
./hello
安装GLib帮助
安装系统上安装的GLib版本的GLib帮助文档。
sudo apt-get install libglib2.-doc
可以在Devhelp中查看帮助文件。使用以下命令安装Devhelp:
sudo apt-get install devhelp
可以在Linux Mint 18 Mate菜单下的菜单→编程→Devhelp下找到Devhelp。下图显示了在Devhelp中打开的GLib参考手册。

查找GLib的版本号
单击Devhelp左窗格中的GLib参考手册,应显示文档的版本号,该版本号应与已安装的库的版本号相对应。还有两种其他方法可以确定库的已安装版本-使用pkg-config和按如下所述以编程方式进行确定。
使用pkg-config
在终端窗口中输入以下命令将显示当前安装的GLib版本。
pkg-config --modversion glib-2.0
以编程方式
编译并运行以下程序时,它将显示GLib的当前版本。
#include <glib.h> int main(void)
{
g_print("glib version number is %d.%d.%d\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
g_print("GLIB_MAJOR_VERSION = %d\n", GLIB_MAJOR_VERSION);
g_print("GLIB_MINOR_VERSION = %d\n", GLIB_MINOR_VERSION);
g_print("GLIB_MICRO_VERSION = %d\n", GLIB_MICRO_VERSION);
return ;
}
编译使用:
gcc main.c`pkg-config --cflags --libs glib-2.0` -o版本
要么:
gcc main.c $(pkg-config --cflags --libs glib-2.0)-o版本
跑:
GLib C投币示例程序
另一个GLib C程序,用于模拟抛硬币。运行该程序时,它将“ Heads”或“ Tails”打印到终端窗口。抛硬币的正面或反面由g_random_boolean()函数确定。
#include <glib.h> int main(void)
{
gboolean result; result = g_random_boolean();
if (result == TRUE) {
g_print("Heads\n");
}
else {
g_print("Tails\n");
}
return ;
}
Compile using:
gcc main.c `pkg-config --cflags --libs glib-2.0` -o coin_toss
Or:
gcc main.c $(pkg-config --cflags --libs glib-2.0) -o coin_toss
Run:
./coin_toss
编译GLib C程序的更多相关文章
- 使用VS+VisualGDB编译调试Linux程序
Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第 ...
- 如何编译ReactNative示例程序Examples
通过示例程序可以看到一些基本组件的使用,对于学习ReactNative是很有帮助的. 编译示例程序需要将整个项目导入到androidStudio中,androidStudio导入项目时选择react- ...
- Ubuntu编译源码程序依赖查找方法
ubuntu平时编译源码程序的时候会提示缺少相关的库或是头文件,可以按照以下两种方法进行查找,然后再安装相应的软件包. 1.使用apt-file查找头文件 安装apt-file sudo apt-ge ...
- VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...
- 运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory
运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such f ...
- 减小Delphi XE5编译出来的程序体积
默认Delphi XE, XE2, XE3,XE4,XE5, XE6 ... 编译出来的程序体积很大. 一般用两个方法可以很大程度上减少程序体积. 一.在工程中用编译指令禁用RTTI 禁用的方法很简单 ...
- linux终端下 编译c语言程序
linux终端下,编译C语言程序步骤为: 采用vi进行源代码编写,编写完成后,:wq存盘退出,如: vi test.c 在命令行下,运行gcc编译程序,生成执行码,如: gcc -o test te ...
- VS编译的QT程序发布时产生的AppCrash问题
至少我碰到了三个情况,都是AppCrash错误(以下都指VS2008的Release的设置) 第1个错误,报错模块是程序自己 我使用VS2008 Team with SP1和QT4.86编译程序,一直 ...
- 【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”
原文网址:http://www.cnblogs.com/Dageking/archive/2013/05/15/3079394.html VS2012编译出来的程序,在XP上运行,出现“.exe 不是 ...
随机推荐
- 洛谷P2330 [SCOI2005]繁忙的都市
#include<bits/stdc++.h> using namespace std; ; ; int n,k,Max,tot; struct node{ int cnt,fa; }f[ ...
- ELMo解读(论文 + PyTorch源码)
ELMo的概念也是很早就出了,应该是18年初的事情了.但我仍然是后知后觉,居然还是等BERT出来很久之后,才知道有这么个东西.这两天才仔细看了下论文和源码,在这里做一些记录,如果有不详实的地方,欢迎指 ...
- CSS像素设置为整数,渲染结果像素带有小数
今天进行网页设计学习时,CSS代码设计width:300px,但实际显示像素如下图所示为199.99px. 最后发现是浏览器运用了缩放,恢复100%的缩放后,像素显示为整数.
- 前端开发之BOM和DOM(转载)
BOM BOM:是指浏览器对象模型,它使JavaScript可以和浏览器进行交互. 1,navigator对象:浏览器对象,通过这个对象可以判定用户所使用的浏览器,包含了浏览器相关信息. naviga ...
- 2019-6-23-修复-dotnet-Core-缺SDK编译失败
title author date CreateTime categories 修复 dotnet Core 缺SDK编译失败 lindexi 2019-6-23 10:55:9 +0800 2019 ...
- iptables rc.firewall脚本代码
#!/bin/sh # # rc.firewall - Initial SIMPLE IP Firewall script for Linux 2.4.x and iptables # # Copyr ...
- java项目和npm项目命令窗口部署方便调试
1.maven窗口选择root项目 在点击lifstyle--> package 点击播放箭头 build完毕以后会出现在TARGET目录下todo.jar 在执行 java -jar todo ...
- 京东基于Spark的风控系统架构实践和技术细节
京东基于Spark的风控系统架构实践和技术细节 时间 2016-06-02 09:36:32 炼数成金 原文 http://www.dataguru.cn/article-9419-1.html ...
- React---钩子函数
钩子函数的状态有4个阶段: <p>1.初始化阶段 (componentWillMount() || componentDidMount()) </p> ...
- 2018-2-13-wpf-使用-Dispatcher.Invoke-冻结窗口
title author date CreateTime categories wpf 使用 Dispatcher.Invoke 冻结窗口 lindexi 2018-2-13 17:23:3 +080 ...