Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > libgraphviz-dev + Qt


Автор: smartchecker 19.10.2013, 11:28
Воодушевившись http://www.mupuf.org/blog/2010/07/08/how_to_use_graphviz_to_draw_graphs_in_a_qt_graphics_scene/ чтивищем я попытался собрать под debian'ом и запустить https://code.google.com/p/qgv/ проект.
Собираться-то он собирается, но при запуске выдаёт буквально следующее:
Код

peter@myth:~/work/graphviz/QGraphViz-build-desktop-Qt_in_PATH_Debug$ gdb QGraphViz 
GNU gdb (GDB) 7.4-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/peter/work/graphviz/QGraphViz-build-desktop-Qt_in_PATH_Debug/QGraphViz...done.
(gdb) run
Starting program: /home/peter/work/graphviz/QGraphViz-build-desktop-Qt_in_PATH_Debug/QGraphViz 
warning: Could not load shared library symbols for linux-gate.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0xf7f473cc in agopen () from /usr/lib/libcgraph.so.5
(gdb) quit
A debugging session is active.

        Inferior 1 [process 10188] will be killed.


Т.е. заваливается буквально сразу на agopen ().
Где и что поправить?

Автор: borisbn 19.10.2013, 18:44
 smile 
Я смотрю - тебе даже на SO-шке не помогли...
Видать, проблема оооооооч. специфическая.
М.б. какие-нибудь библиотеки используют release-версию Qt, а у тебя программа debug'овая ?

Автор: smartchecker 19.10.2013, 23:51
Даже простой пример сегфолтится.

Код

#include <graphviz/gvc.h>
#include <graphviz/cdt.h>
#include <graphviz/graph.h>
#include <graphviz/pathplan.h>

using namespace std;


int main(int argc, char **argv)
{
    Agraph_t *g;
    Agnode_t *n, *m;
    Agedge_t *e;
    Agsym_t *a;
    GVC_t *gvc;

    /* set up a graphviz context */
    gvc = gvContext();

    /* parse command line args - minimally argv[0] sets layout engine */
    gvParseArgs(gvc, argc, argv);

    /* Create a simple digraph */
    g = agopen("g", AGDIGRAPH);
    n = agnode(g, "n");
    m = agnode(g, "m");
    e = agedge(g, n, m);

    /* Set an attribute - in this case one that affects the visible rendering */
    agsafeset(n, "color", "red", "");

    /* Compute a layout using layout engine from command line args */
    gvLayoutJobs(gvc, g);

    /* Write the graph according to -T and -o options */
    gvRenderJobs(gvc, g);

    /* Free layout data */
    gvFreeLayout(gvc, g);

    /* Free graph structures */
    agclose(g);

    /* close output file, free context, and return number of errors */
    return (gvFreeContext(gvc));
}

Правда, у меня graphviz из пакетов, хотя и из testing/unstable

libgraphviz-dev:
  Installed: 2.26.3-15+b1
  Candidate: 2.26.3-15+b1
http://www.graphviz.org/content/gvlayout-segfaulting советуют версию 2.3, но это идёт вразрез с пакетной системой.

Добавлено через 8 минут и 55 секунд
Причём даже на win7 пытался собрать и запустить.
Результат тот же - падение, только в другом месте.

Автор: Amp 20.10.2013, 22:42
Так может забыть про пакетный менеджер и самому собрать библиотеку? Я многие библиотеки сам собираю, так ак могут понадобиться какие-то специфические флаги, свежая версия из git-а, да мало ли чего еще. Так проще.

Автор: smartchecker 21.10.2013, 11:30
Цитата(Amp @ 20.10.2013,  22:42)
Так может забыть про пакетный менеджер и самому собрать библиотеку? Я многие библиотеки сам собираю, так ак могут понадобиться какие-то специфические флаги, свежая версия из git-а, да мало ли чего еще. Так проще.

Когда я пытался собрать и запустить этот проект на Win7 я взял версию 2.34, которая позиционируется как current stable release.
Обваливается и в этом случае.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)