标签: glib

GLib编译错误(ffi.h),但安装了libffi

成功配置后,使用剪切进行退出

gclosure.c:29:17: fatal error: ffi.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

我安装了libffi,并找到ffi.h给出:

/home/luca/gcc4.6/gcc-4.6.0/libffi/include/ffi.h.in
/usr/include/x86_64-linux-gnu/ffi.h
/usr/share/doc/ghc-doc/html/users_guide/ffi.html
/usr/share/doc/libffi5/html/Using-libffi.html
Run Code Online (Sandbox Code Playgroud)

gtk glib

116
推荐指数
3
解决办法
8万
查看次数

括号中的 C 函数声明显然永远调用自身,有什么意义?

gatomic.cglib 中,有几个函数声明如下所示:

gboolean
(g_atomic_int_compare_and_exchange_full) (gint *atomic,
                                          gint  oldval,
                                          gint  newval,
                                          gint *preval)
{
  return g_atomic_int_compare_and_exchange_full (atomic, oldval, newval, preval);
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这段代码到底是做什么的吗?我对这里的几件事感到困惑:

  1. 函数名称g_atomic_int_compare_and_exchange_full位于括号内。这有什么意义呢?

  2. 该函数的主体显然只包含对函数本身的调用,因此这将永远运行并导致堆栈溢出(双关语)。

我根本无法理解这个函数声明。这里究竟发生了什么?

c macros function glib function-declaration

89
推荐指数
3
解决办法
8385
查看次数

使用大型库本身会使代码变慢吗?

我有一种心理tic,这让我不愿意在C和C++等低级语言中使用大型库(如GLibBoost).在我看来,我认为:

嗯,这个图书馆有数千个小时的时间,而且它是由那些比我更了解语言的人创造的.他们的作者和粉丝说这些库是快速可靠的,而且功能看起来非常有用,它肯定会阻止我(严重地)重新发明轮子.

该死的,我永远不会使用该库中的所有功能.它太大了,多年来可能会变得臃肿; 这是我的程序需要拖延的另一个球和链.

托沃兹咆哮(争议虽然它是)不完全把我的心脏放心无论是.

我的想法有什么依据,还是我只是不合理和/或无知?即使我只使用大型库的一个或两个功能,通过链接到该库我会产生运行时性能开销吗?

我确信它还取决于具体的库是什么,但我通常很想知道大型库是否会在技术层面上固有地引入低效率.

当我没有技术知识知道我是否正确的时候,我已经厌倦了对此的痴迷,嘀咕和担心.

请把我从痛苦中解救出来!

c c++ performance boost glib

46
推荐指数
5
解决办法
5316
查看次数

为什么我不能为glib建立一个"hello world"?

所以这是世界上最简单的glib程序:

#include <glib.h>
Run Code Online (Sandbox Code Playgroud)

我尝试编译它,gcc test.c我得到:

test.c:1:18: error: glib.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

所以我确保我有合适的包裹:

# dpkg -l | grep libglib
ii  libglib-perl                              1:1.183-1                               Perl interface to the GLib and GObject libra
ii  libglib1.2-dev                            1.2.10-19build1                         The GLib library of C routines (development)
ii  libglib1.2ldbl                            1.2.10-19build1                         The GLib library of C routines
ii  libglib2.0-0                              2.20.1-0ubuntu2                         The GLib library of C routines
ii  libglib2.0-cil                            2.12.1-1ubuntu2                         CLI binding for the GLib utility library 2.1
ii  libglib2.0-data                           2.18.2-0ubuntu2                         Common files for GLib library …
Run Code Online (Sandbox Code Playgroud)

c glib

44
推荐指数
3
解决办法
6万
查看次数

学习GObject和Glib的材料

我很舒服C.但需要学习GObjectGlib进行gstreamer.我在网上找到的只是Gobject参考手册.它很好,但寻找Gobject/Glib的教程,主要关注gstreamer.

所以请分享任何其他资源来学习滑稽和gobject.

c gnome gobject glib gstreamer

43
推荐指数
5
解决办法
2万
查看次数

Ubuntu 14.04上的Sublime Text - 继续尝试删除它

Sublime&from Terminal,打开Sublime Text窗口,但不断收到此消息:

(sublime: 6476): GLib-CRITICAL **; Source ID 1982 was not found when attempting to remove it. 
Run Code Online (Sandbox Code Playgroud)

源ID不断变化.使用Ubuntu 14.04.

什么想法可能会发生什么?谢谢!

ubuntu glib sublimetext sublimetext2 ubuntu-14.04

41
推荐指数
3
解决办法
3万
查看次数

glibconfig.h没有这样的文件或目录

我刚刚在Raspbian(Debian版本)中安装了glib.我想用glib读取一个配置文件.我试图在Codeblocks中编写一个C应用程序,我使用标头

#include <glib.h> 
Run Code Online (Sandbox Code Playgroud)

但我在gtypes.h中有错误

fatal error:glibconfig.h No such file or directory
Run Code Online (Sandbox Code Playgroud)

我用过这条路

project->Build Options->Compiler Settings->Other Options 
Run Code Online (Sandbox Code Playgroud)

我加了

-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
Run Code Online (Sandbox Code Playgroud)

正如我在教程中所读到的那样 我也必须申报

-L/usr/lib -lm -lglib-2.0 
Run Code Online (Sandbox Code Playgroud)

正如教程所说,如果是,那么我在哪里以及如何在Codeblocks中声明它?

c linux glib codeblocks

35
推荐指数
1
解决办法
5万
查看次数

glibc,glib和gnulib

gnulib glibglibc的强度和功能有什么不同 谢谢!

glibc glib

30
推荐指数
2
解决办法
9098
查看次数

为什么要使用GLib功能?

虽然编程C和GTK +,为什么会"更好"来使用g_strdup_printf,g_free,g_strcmp0等...和同事glib函数?

c gtk glib

29
推荐指数
3
解决办法
2万
查看次数

在非标准前缀中安装glib失败

我正在尝试在非标准前缀中安装glib,但运行时我得到以下内容make install:

/bin/sh ../libtool --mode=install /usr/bin/install -c libgthread-2.0.la '/root/build/lib'
libtool: install: error: cannot install `libgthread-2.0.la' to a directory not ending in /usr/local/lib
Run Code Online (Sandbox Code Playgroud)

必须在以/ usr/local/lib结尾的前缀中安装gthread的原因是什么?

install makefile glib libtool

27
推荐指数
1
解决办法
1万
查看次数