gpt4 book ai didi

c - 使用 graphviz 作为库的问题

转载 作者:行者123 更新时间:2023-12-04 10:47:31 33 4
gpt4 key购买 nike

我正在尝试使用 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>

然后一切都乱套了(主要是两个 header 之间的声明冲突)。我怎样才能包含必要的 header ,而不会因为所有这些冲突而头疼?

Mac OS X 10.8.3、Graphviz 2.28.0、GCC 4.2.1

最佳答案

经过一些实验,似乎添加了标志

#define WITH_CGRAPH

具有包含 cgraph.h 的效果,它消除了“'Agdirected' undeclared”错误。

其他错误可以通过将 gcc 中的命令行选项从 -lgraph 更改为 -lcgraph 来修复

关于c - 使用 graphviz 作为库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16003343/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com