Doki1201 2024-04-07 20:43 采纳率: 66.7%
浏览 28

visual studio 2022配置graphviz,出现错误Test.obj : error LNK2001: 无法解析的外部符号 Agdirected,如何解决?

visual studio 2022配置graphviz,出现错误Test.obj : error LNK2001: 无法解析的外部符号 Agdirected

include文件放入

img

lib文件放入

img

并且将lib中所有文件添加到

img

bin中的所有文件放入

img

随后我进行了测试,发现没有报错,然后运行

#include <iostream>
#include <graphviz/gvc.h>

int main() {
    Agraph_t* graph;
    Agnode_t* node1, * node2;
    Agedge_t* edge;

    // 创建一个新的有向图
    graph = agopen("DFA", Agdirected, NULL);

    // 添加两个节点
    node1 = agnode(graph, "q0", 1);
    node2 = agnode(graph, "q1", 1);

    // 添加一条边
    edge = agedge(graph, node1, node2, NULL, 1);

    // 创建一个Graphviz上下文
    GVC_t* gvc;
    gvc = gvContext();

    // 设置输出文件名为dfa.png
    gvRenderFilename(gvc, graph, "png", "dfa.png");

    // 渲染图形并保存为图片
    gvLayout(gvc, graph, "dot");
    gvRender(gvc, graph, "png", NULL);

    // 释放资源
    gvFreeLayout(gvc, graph);
    agclose(graph);

    return 0;
}

img

出现错误Test.obj : error LNK2001: 无法解析的外部符号 Agdirected

img

是我哪里操作错了吗,有没有人指导一下

  • 写回答

4条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-04-07 20:52
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 在使用 Visual Studio 2022 配置 graphviz 时,出现了以下错误: Test.obj : error LNK2001: 无法解析的外部符号 Agdirected 解决方案: 根据提供的信息,可能是因为缺少 Agdirected 依赖库导致链接错误。可以按照以下步骤进行操作: 1.确认 Graphviz 安装路径。 在 Visual Studio 中添加头文件和库文件之前,需要确认 Graphviz 安装路径,以便正确引用。 2.添加 Graphviz 头文件路径。 在 Visual Studio 中,可以在项目属性 -> C/C++ -> 常规 -> 附加包含目录中添加 Graphviz 的 include 目录路径。例如,如果安装路径为 C:\graphviz,则可添加路径 C:\graphviz\include。 3.添加 Graphviz 库文件路径。 同样是在项目属性中,可以在链接器 -> 常规 -> 附加库目录中添加 Graphviz 的 lib 目录路径。例如,如果安装路径为 C:\graphviz,则可添加路径 C:\graphviz\lib。 4.添加 Graphviz 依赖库。 在链接器 -> 输入 -> 附加依赖项中,添加 Graphviz 所需的依赖库。根据错误信息,需要添加 Agdirected 依赖库。在 lib 目录中,可以找到以“lib”开头、“.lib”结尾的文件,例如“libgvc.lib”。将所有这样的文件都添加进去即可。 5.重新生成项目并测试。 重新生成项目并进行测试,如果无错误提示,说明配置成功。 代码实现: 以下代码展示了如何使用 Graphviz 创建一个简单的有向图,并将其渲染成 PNG 图片保存在本地。
    #include <iostream>
    #include <graphviz/gvc.h>
    int main() {
        Agraph_t* graph;
        Agnode_t* node1, * node2;
        Agedge_t* edge;
        // 创建一个新的有向图
        graph = agopen("DFA", Agdirected, NULL);
        // 添加两个节点
        node1 = agnode(graph, "q0", 1);
        node2 = agnode(graph, "q1", 1);
        // 添加一条边
        edge = agedge(graph, node1, node2, NULL, 1);
        // 创建一个 Graphviz 上下文
        GVC_t* gvc;
        gvc = gvContext();
        // 设置输出文件名为 dfa.png
        gvRenderFilename(gvc, graph, "png", "dfa.png");
        // 渲染图形并保存为图片
        gvLayout(gvc, graph, "dot");
        gvRender(gvc, graph, "png", NULL);
        // 释放资源
        gvFreeLayout(gvc, graph);
        agclose(graph);
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月7日

悬赏问题

  • ¥100 网页游戏在本地页面修改游戏结果
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错
  • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
  • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
  • ¥100 matlab2009 32位一直初始化
  • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数