【发布时间】:2018-01-28 23:58:21
【问题描述】:
我正在尝试在 Windows 中将 graphviz 作为库从 CLion 运行。我花了很长时间才走到这一步,我希望这是最后的障碍。当我运行程序时,我看到以下警告并且没有图表
Warning: Could not load "C:\Program Files (x86)\Graphviz2.38\bin\gvplugin_pango.dll" - can't open the module
我正在使用 MinGW 3.22 作为工具链运行 CLion。 CmakeLists 和 main.c 如下。不幸的是,我无法注册 graphviz 论坛,所以我希望这里有人可以提出一些建议。到目前为止,我已经尝试过 -
- 安装和使用 mingw-64
- 安装旧版本的 GraphViz(2.28,当前为 2.38)
- 在 cmakelists.txt 中包含 gvplugin_pango 库
- 更改 Graphviz 文件夹的权限以允许对所有人进行完全访问,测试 dot -c 并且工作正常
- 将 GVBINDIR 环境变量设置为明确指向 2.38 安装
- 尝试在 Cmakelists.txt 中设置 m32(不是 100% 我这样做正确)
CmakeLists.txt
cmake_minimum_required(VERSION 3.6)
project(Learning)
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
set(GRAPHVIZ_INCLUDE_DIR "C:/Program Files (x86)/Graphviz2.38/include/graphviz")
set(GRAPHVIZ_LIB_DIR "C:/Program Files (x86)/Graphviz2.38/lib/release/lib")
set(SOURCE_FILES main.c)
include_directories("${GRAPHVIZ_INCLUDE_DIR}")
add_executable(Learning ${SOURCE_FILES})
find_library(CGRAPH_LIBRARY cgraph HINTS "${GRAPHVIZ_LIB_DIR}" REQUIRED)
find_library(GVC_LIBRARY gvc HINTS "${GRAPHVIZ_LIB_DIR}" REQUIRED)
target_link_libraries( Learning ${CGRAPH_LIBRARY} ${GVC_LIBRARY} )
Main.c
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <gvc.h>
#include <cgraph.h>
int main() {
Agraph_t *graph;
Agnode_t *nodeA, *nodeB;
Agedge_t *edge1;
Agsym_t *symbol1;
GVC_t *gvc;
gvc = gvContext();
graph = agopen( "graph", Agdirected, NULL);
nodeA = agnode(graph, "nodeA", 1);
nodeB = agnode(graph, "nodeB", 1);
edge1 = agedge(graph, nodeA, nodeB, 0, 1);
printf("debug");
agsafeset(nodeA, "color", "red", "");
gvLayout(gvc, graph, "dot");
gvRender(gvc, graph, "dot", NULL);
agclose(graph);
return ( gvFreeContext(gvc));
}
【问题讨论】:
标签: mingw graphviz clion pango