标签: glib

Glib用于iPhone应用程序

我想开发一个基于现有开源Objective-C框架的iPhone应用程序,但是该框架广泛使用了glib库,我无法找到一种方法来构建和包含用于iPhone应用程序的glib库(非越狱) ).

有没有办法可以做到这一点,或者是否有任何建议的方法将框架移离glib?

谢谢

iphone frameworks objective-c glib

2
推荐指数
1
解决办法
2018
查看次数

找不到glib.h和gtk.h

嗨,每一个我都有一个程序,我有包括

  • GTK/gtk.h
  • glib.h

我用过命令

sudo apt-get install libgtk2.0-dev glib 
sudo apt-get install glade
Run Code Online (Sandbox Code Playgroud)

但仍然得到glib未找到ans gtk/gtk.h未找到的错误.我是第一次使用这个gtk.不知道它如何工作如何安装它请帮助我谢谢

我在做c编程

c linux gtk glib gtk2

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

C代码中在Pthread(辅助线程)下调用GTK_MAIN

这是我对 GTK 理解的延续:

在 pthread 下从 Main 调用 GTK_MAIN() 对吗??示例代码 ::

主要我调用dispInit(argc, argv); 我从中调用g_thread_create(main_callback, NULL, FALSE, NULL);

** 我也没有在此代码中包含 g_idle_add ..这只是一个参考代码。

请指导

#include <stdio.h>
#include <glib.h>
#include <gtk/gtk.h>
//#include "dispimage.h"
#include <windows.h>
#define sleep(n) Sleep(1000 * n)
GtkWidget* window;
void dispInit(int argc, char* argv[]);
void dispInfoPage(char* fileName, int duration);


gpointer main_callback(gpointer data)
{
    gtk_main();
    return 0;
}

void dispInit(int argc, char* argv[])
{
    gdk_threads_init();
    gdk_threads_enter();
    printf("Initializing the display library\n");
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_resize(GTK_WINDOW(window), 640, …
Run Code Online (Sandbox Code Playgroud)

c gtk glib

2
推荐指数
1
解决办法
2929
查看次数

检查是否正确释放了一个gobject

我正在使用glib的测试框架进行单元测试.我的库也使用了gobject,在我的测试unities中我想检查在每个对象的最后一次_unref之后是否正确释放了对象.当g_test_trap_fork可用时,我在每次_unref之后使用它,第二次调用_unref,然后检查g_test_trap_assert_failed().

但是,现在g_test_trap_fork正在被弃用,我正朝着g_test_trap_subprocess迈进.问题是现在我必须为每个要检查的_unref编写一个单独的测试用例,因为每个case都可以包含几个对象,这些对象意味着每个测试用例的重复,为每个已经存在的测试用例添加第二个_unref.

例如,我试图像这样修复:

NcmVector *v = test->v;
GVariant *var = ncm_vector_get_variant (v);

g_assert (!g_variant_is_floating (var));
g_assert (g_variant_is_container (var));
g_assert_cmpuint (ncm_vector_len (v), ==, g_variant_n_children (var));

{
  NcmVector *nv = ncm_vector_new_variant (var);
  gint i;

  g_assert_cmpuint (ncm_vector_len (v), ==, ncm_vector_len (nv));
  for (i = 0; i < ncm_vector_len (v); i++)
  {
    ncm_assert_cmpdouble (ncm_vector_get (v, i), ==, ncm_vector_get (nv, i));
  }

  ncm_vector_free (nv);
  NCM_TEST_FAIL (ncm_vector_free (nv));
}

g_variant_unref (var);
NCM_TEST_FAIL (g_variant_unref (var); fprintf (stderr, "fail (%s)", g_variant_get_type_string (var)));
Run Code Online (Sandbox Code Playgroud)

宏NCM_TEST_FAIL由下式给出:

#define NCM_TEST_FAIL(cmd) \
G_STMT_START { …
Run Code Online (Sandbox Code Playgroud)

unit-testing gobject glib

2
推荐指数
1
解决办法
492
查看次数

将 GLib.Array 转换为内置数组

假设我有 aGLib.Array<Item?>并想将其转换为 a Item[],我将如何在 Vala 中做到这一点?

glib vala

2
推荐指数
1
解决办法
818
查看次数

glib,如何处理 GError 的东西?

我有这个功能:

static
void ReadFilesInDirectory(const std::string &target)
{
    GDir *dir;
    GError *error;
    const gchar *filename;
    gchar* pathPlusFilename;

    dir = g_dir_open(target.c_str(), 0, &error);
    while ((filename = g_dir_read_name(dir)))
    {
        pathPlusFilename = g_build_filename(target.c_str(),filename,(gchar*)NULL);
        if( g_file_test(pathPlusFilename ,G_FILE_TEST_IS_REGULAR) )
        {
            std::cout << "(file)      " << pathPlusFilename << std::endl;
        }
        else
        {
            if( g_file_test(pathPlusFilename ,G_FILE_TEST_IS_DIR) )
            {
                std::cout << "(directory) " << pathPlusFilename << std::endl;
                chdir(filename);
                ReadFilesInDirectory(pathPlusFilename);
            }
        }
    }
    if(error) g_error_free(error); // gives an error at running time
    g_free(pathPlusFilename);
    g_dir_close(dir);
}
Run Code Online (Sandbox Code Playgroud)

有一个 GError 变量,但我不知道如何从 GError 中打印一些东西, …

c++ linux glib

2
推荐指数
1
解决办法
4397
查看次数

在CLion中使用GLib

我尝试使用CLion编译我的测试GLib项目.所以我#include "glib-2.0/glib.h"在我的cpp文件中添加并添加include_directories(/usr/include/glib-2.0/glib)到我的CMakeLists.txt中.但是在CLion获得了输出:

致命错误:glib/galloca.h:没有这样的文件或目录

那么我如何才能在我的CLion项目中正确使用GLib?

c++ pkg-config glib cmake clion

2
推荐指数
1
解决办法
1299
查看次数

如何将 glib 信号回调附加到某些线程上下文

所以基本上我正在编写以下步骤来创建基于 dbus 的应用程序。1. g_bus_watch_name(出现特定服务的回调) 2. g_signal_connect 附加到服务提供的某些信号。g_signal_connect(proxy,"xyz", G_CALLBACK(回调), NULL);

我希望“回调”在特定线程上下文中运行。

任何提示将不胜感激

dbus glib

2
推荐指数
1
解决办法
734
查看次数

两次释放 glib 缓冲区是否安全?

释放由glib g_malloc函数分配的缓冲区两次是安全的还是禁止的?

char *buffer = g_malloc(10);
g_free(buffer);
g_free(buffer);
Run Code Online (Sandbox Code Playgroud)

c memory-management glib double-free

2
推荐指数
1
解决办法
191
查看次数

如何解决c++文件中包含json-glib.h的问题

我正在尝试编译一个需要头文件 json-glib.h 的 C++ 文件,编译日志说找不到这样的头文件。我在 ubuntu 18.04 LTS 中。

我尝试执行dpkg -l '*json-glib*'以检查我的系统中是否有这样的文件,结果是:

||/ Nombre                                       Versión                     Arquitectura                

ii  libjson-glib-1.0-0:amd64                     1.4.2-3                     amd64                     
ii  libjson-glib-1.0-common                      1.4.2-3                     all                       
Run Code Online (Sandbox Code Playgroud)

所以接下来,我执行了命令pkg-config --cflags libjson-glib-1.0并得到:

Package libjson-glib-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libjson-glib-1.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libjson-glib-1.0' found
Run Code Online (Sandbox Code Playgroud)

我试过 pkg-config --cflags json-glib-1.0, pkg-config --cflags json-glib, 和pkg-config --cflags libjson-glib并且结果与上面类似。

我还遵循了致命错误的答案的说明:找不到 json-glib.h 文件https://unix.stackexchange.com/questions/297277/make-doesnt-find-an-installed-library/298035#298035 …

ubuntu json apt glib

2
推荐指数
1
解决办法
2849
查看次数