ここで提供されているlibguideに従って、graphviz を C++ プロジェクトのライブラリとして使用しようとしています。ただし、付録の例をコンパイルすることさえできません。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>
その後、すべての地獄が解き放たれます (ほとんどの場合、2 つのヘッダー間で宣言が競合します)。これらすべての競合の頭痛の種なしに、必要なヘッダーを含めるにはどうすればよいですか?
Mac OS X 10.8.3、Graphviz 2.28.0、GCC 4.2.1