成功配置后,使用剪切进行退出
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) 在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)
有人可以解释一下这段代码到底是做什么的吗?我对这里的几件事感到困惑:
函数名称g_atomic_int_compare_and_exchange_full位于括号内。这有什么意义呢?
该函数的主体显然只包含对函数本身的调用,因此这将永远运行并导致堆栈溢出(双关语)。
我根本无法理解这个函数声明。这里究竟发生了什么?
我有一种心理tic,这让我不愿意在C和C++等低级语言中使用大型库(如GLib或Boost).在我看来,我认为:
嗯,这个图书馆有数千个小时的时间,而且它是由那些比我更了解语言的人创造的.他们的作者和粉丝说这些库是快速可靠的,而且功能看起来非常有用,它肯定会阻止我(严重地)重新发明轮子.
该死的,我永远不会使用该库中的所有功能.它太大了,多年来可能会变得臃肿; 这是我的程序需要拖延的另一个球和链.
该托沃兹咆哮(争议虽然它是)不完全把我的心脏放心无论是.
我的想法有什么依据,还是我只是不合理和/或无知?即使我只使用大型库的一个或两个功能,通过链接到该库我会产生运行时性能开销吗?
我确信它还取决于具体的库是什么,但我通常很想知道大型库是否会在技术层面上固有地引入低效率.
当我没有技术知识知道我是否正确的时候,我已经厌倦了对此的痴迷,嘀咕和担心.
请把我从痛苦中解救出来!
所以这是世界上最简单的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.但需要学习GObject和Glib进行gstreamer.我在网上找到的只是Gobject参考手册.它很好,但寻找Gobject/Glib的教程,主要关注gstreamer.
所以请分享任何其他资源来学习滑稽和gobject.
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.
什么想法可能会发生什么?谢谢!
我刚刚在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和GTK +,为什么会"更好"来使用g_strdup_printf,g_free,g_strcmp0等...和同事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的原因是什么?
glib ×10
c ×6
gtk ×2
boost ×1
c++ ×1
codeblocks ×1
function ×1
glibc ×1
gnome ×1
gobject ×1
gstreamer ×1
install ×1
libtool ×1
linux ×1
macros ×1
makefile ×1
performance ×1
sublimetext ×1
sublimetext2 ×1
ubuntu ×1
ubuntu-14.04 ×1