Tôi đang cố gắng chạy graphviz như một thư viện từ CLion trong Windows. Tôi mất khá nhiều thời gian để đạt được điều này và tôi hy vọng đây là rào cản cuối cùng. Khi tôi chạy chương trình, tôi thấy cảnh báo sau và không có biểu đồGraphviz - Không thể tải gvplugin_pango.dll
Warning: Could not load "C:\Program Files (x86)\Graphviz2.38\bin\gvplugin_pango.dll" - can't open the module
Tôi đang chạy CLion với MinGW 3.22 làm chuỗi công cụ. CmakeLists và main.c là dưới đây. Thật không may tôi không thể đăng ký diễn đàn graphviz vì vậy tôi hy vọng ai đó ở đây có thể có một số gợi ý. Cho đến nay tôi đã cố gắng -
- Cài đặt và sử dụng mingw-64
- Cài đặt một phiên bản cũ của GraphViz (2.28, hiện nay là 2,38)
- Bao gồm các thư viện gvplugin_pango trong cmakelists.txt
- Thay đổi quyền cho thư mục Graphviz để cho phép truy cập đầy đủ vào Mọi người, kiểm tra dot -c và hoạt động tốt
- Đặt biến GVvINDIR env để trỏ rõ ràng đến cài đặt 2.38
- Đã cố gắng thiết lập m32 trong Cmakelists.txt (không phải 100% Tôi đã làm điều này một cách chính xác)
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));
}
Tôi không thể tìm thấy thư viện pango trong trình quản lý cài đặt mingw, có nơi nào khác mà tôi nên tìm không? – SMC