编译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 不是 ...
随机推荐
- oracle函数 TRANSLATE(c1,c2,c3)
[功能]将字符表达式值中,指定字符替换为新字符 [说明]多字节符(汉字.全角符等),按1个字符计算 [参数] c1 希望被替换的字符或变量 c2 查询原始的字符集 c3 替换新的字符集,将 ...
- part10.2-字符设备驱动模型
- 操作SDO_GEOMETRY字段
读取SDO_GEOMETRY字段 select to_char(regexp_replace(sdo_util.to_gmlgeometry(t.intsxn_geom),'</?[^> ...
- WPF Converter(转)
WPF Binding 用于数据有效性校验的关卡是它的 ValidationRules 属性,用于数据类型转换的关卡是它的 Converter 属性.下面是实例: 1. Binding 的数据校验 & ...
- SSM整合 mybatis多条件查询与分页
多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...
- Pytorch Bi-LSTM + CRF 代码详解
久闻LSTM + CRF的效果强大,最近在看Pytorch官网文档的时候,看到了这段代码,前前后后查了很多资料,终于把代码弄懂了.我希望在后来人看这段代码的时候,直接就看我的博客就能完全弄懂这段代码. ...
- H3C 配置CHAP验证
- java接口的使用
格式:public class SubImpl extends Super implements IA,IB 接口可以多继承,但是只能继承接口,不能继承类. 实现接口(支持多实现) [修饰符] c ...
- [转]解决pip安装太慢的问题
阅读目录 临时使用: 经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解 ...
- 【codeforces 761A】Dasha and Stairs
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...