【发布时间】:2013-05-08 23:49:29
【问题描述】:
我正在尝试使用 graphviz 作为 C++ 项目的库,遵循此处提供的libguide。但是,即使编译附录中的示例,我也遇到了问题。当我尝试使用 gcc 编译 demo.c 时,我得到以下输出:
$ gcc -I/usr/local/Cellar/graphviz/2.28.0/include/ demo.c -L/usr/local/Cellar/graphviz/2.28.0/lib/ -lgvc -lgraph -lcdt
demo.c: In function ‘main’:
demo.c:14: error: ‘Agdirected’ undeclared (first use in this function)
demo.c:14: error: (Each undeclared identifier is reported only once
demo.c:14: error: for each function it appears in.)
demo.c:15: error: too many arguments to function ‘agnode’
demo.c:16: error: too many arguments to function ‘agnode’
demo.c:17: error: too many arguments to function ‘agedge’
Agdirected 在 cgraph.h 中找到,但如果我将 demo.c 中的包含更改为
#include <graphviz/gvc.h>
#include <graphviz/cgraph.h>
然后一切都变得松散(主要是两个标题之间的冲突声明)。我怎样才能包含必要的标头而不用担心所有这些冲突?
Mac OS X 10.8.3、Graphviz 2.28.0、GCC 4.2.1
【问题讨论】:
-
gvc.h好像包含types.h,其中包含cgraph.h,所以我不知道为什么它认为Agdirected是未声明的。