ubuntu Cairo图形库 环境搭建
Cairo官网:http://cairographics.org/
根据官网指示,我使用如下语句安装好cairo库
sudo apt-get install libcairo2-dev
从官网拷贝代码(http://cairographics.org/FAQ/#compilation_flags):hello.c
#include <cairo.h> int
main (int argc, char *argv[])
{
cairo_surface_t *surface =
cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 240, 80);
cairo_t *cr =
cairo_create (surface); cairo_select_font_face (cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, 32.0);
cairo_set_source_rgb (cr, 0.0, 0.0, 1.0);
cairo_move_to (cr, 10.0, 50.0);
cairo_show_text (cr, "Hello, world"); cairo_destroy (cr);
cairo_surface_write_to_png (surface, "hello.png");
cairo_surface_destroy (surface);
return 0;
}
然后根据官网给出的命令行进行编译
gcc -o hello $(pkg-config --cflags --libs cairo) hello.c
但是结果如下图所示
出现这种“undifined”一般是库文件没有找到,于是执行
pkg-config --cflags --libs cairo
得到的字符串中直接有 -lcairo,而此时查找libcairo.a的路径应该是“/usr/lib”,但是我到该目录下查看,并没有发现libcairo.a库文件。
再仔细查看官方文档(http://cairographics.org/download/)
Many distributions including Debian,Fedora, and others regularly include recent versions of cairo. As more and more applications depend on cairo, you
might find that the library is already installed. To get the header files installed as well may require asking for a -dev or-devel package as follows:
许多像Debian、Fedora这样的发行版本通常都包含了最新版本的cairo。而且随着越来越多的应用程序依赖于cairo,你会发现cairo的库文件早已安装在你的系统中。如果需要安装头文件,请使用下面语句:
原来,cairo库文件早就在我的系统中了,刚刚安装的只是头文件,通过文件管理器,我找到了libcairo.a:
所以我只需要告知编译器,我的库文件在这就行了,由于我对“pk-config”工具不熟悉,所以使用如下语句进行编译:
gcc -o hello hello.c -L /usr/lib/i386-linux-gnu/ -lcairo -I /usr/include/cairo
然后运行hello得到一张png图片:
hello world:
ubuntu Cairo图形库 环境搭建的更多相关文章
- ubuntu java开发环境搭建(jdk+tomcat+eclipse)
一.jdk的安装配置. 1.下载jdk. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...
- Ubuntu Desktop开发生产环境搭建
Ubuntu Desktop开发生产环境搭建 1 开发生产环境搭建 在本节内容开始前,先定义一下使用场合,没有哪种系统或者设备是万能的,都有它的优点和缺点,能够在具体的使用场景,根据自身的需求来取 ...
- Ubuntu中Hadoop环境搭建
Ubuntu中Hadoop环境搭建 JDK安装 方法一:通过命令行直接安装(不建议) 有两种java可以安装oracle-java8-installer以及openjdk (1)安装oracle-ja ...
- ubuntu上lamp环境搭建
首先,介绍个彻底删除linux已经安装的软件的方法. sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-5. ...
- Docker+STF在ubuntu下测试环境搭建(详细搭建步骤及踩坑记录)
一.什么是OpenSTF? STF又称OpenSTF,它是一个手机设备管理平台,可以对手机进行远程管理.调试.远程手机桌面监控等操作.这个系统类似于目前很流行的云测服务比如Testin,虽然网页上提供 ...
- Ubuntu下qemu环境搭建
在查找资料过程中,发现自己搭建虚拟的arm环境的话,有一个比较好的软件就是qemu了,当然还有其他的,大家各投所好就好. 接下来说一下qemu环境搭建过程. 其实搭建很简单,作为小白,我还是捣鼓了两三 ...
- Ubuntu下qemu环境搭建vexpress开发平台
在查找资料过程中,发现自己搭建虚拟的arm环境的话,有一个比较好的软件就是qemu了,当然还有其他的,大家各投所好就好. 接下来说一下qemu环境搭建过程. 其实搭建很简单,作为小白,我还是捣鼓了两三 ...
- Ubuntu开发相关环境搭建
一.Ubuntu系统语言环境切换修改 安装时,选择的中文版,但实际使用起来,很不爽,果断切换为英文 1.1 打开终端: vim /etc/default/locale 1.2 修改配置 LANG=&q ...
- 【Ubuntu Java 开发环境搭建 】
配置环境变量 在终端下: sudo gedit /etc/profile 这里当然有些熟悉ubuntu的朋友也可以用 vim, 刚从windows转过来的朋友还是用gedit看着舒服写. ...
随机推荐
- python模块--time & datetime
time模块 #获取当前时间的时间戳 import time >>> time.time() 1535004894.0959966 #日期字符串转化成时间戳 >>> ...
- SP10707 COT2 - Count on a tree II (树上莫队)
大概学了下树上莫队, 其实就是在欧拉序上跑莫队, 特判lca即可. #include <iostream> #include <algorithm> #include < ...
- IntelliJ IDEA的调试方法
快捷键F9 resume programe 恢复程序 Alt+F10 show execution point 显示执行断点 F8 S ...
- 【其他】【Restful】【1】简单了解Restful概念
内容: REST是一种设计风格,不是一种标准,是一种思想.符合REST原则的架构方式即可称为RESTful. 在Restful之前的操作:http://127.0.0.1/user/query/1 G ...
- python-flask-Flask-SQLAlchemy与Flask-Migrate联合进行数据化迁移
使用步骤: 1. 引入Flask-SQLAlchemy from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() 2. 注册 Flask-SQ ...
- 数据标准化+网格搜索+交叉验证+预测(Python)
Download datasets iris_training.csv from:https://github.com/tensorflow/tensorflow/tree/master/tensor ...
- Qt Widgets——菜单和菜单栏
主窗口MainWindow需要菜单栏QMenuBar及菜单QMenu来组成自身,一般应用程序的所有功能都能在菜单中找到.接下来就来说说它们. QMenu 它添加了很多动作QAction,并用自身组成了 ...
- springmvc静态资源处理
1.配置springmvc拦截规则,注意不能拦截 /*,这样的话,会对所有请求默认拦截,而应该拦截 /, 这样servlet会先走默认的拦截规则,默认拦截规则找不到后,才会走 / 这个规则,这样静态资 ...
- 文件操作_26th,Nov 2018
文件:操作系统问应用程序或用户提供一种操作硬盘的虚拟单位 --文件时操作系统提供的虚拟单位 --应用程序或用户对文件的读写操作都是向操作系统发送指令 --文件包括文本文件和二进制文件 为何要用文件:文 ...
- Leetcode 回溯法 典型例题
那些要求列举所有的情况,或者说所有的情况都要探讨一下的例题,一般都可以考虑回溯法. 当遇到一个可以用到回溯法的时候需要按照如下步骤进行: 1.确定问题一个可以用到回溯法的时候需要按照如下步骤进行: 1 ...