使用graphviz库配置CMake

dyachekp

我正在尝试制作一个将从.dot文件生成带有图形的图像的函数,因此我必须使用graphviz库,这是此函数:

#include <fstream>
#include <gvc.h>

bool draw_image(const string& path) {
    GVC_t *gvc;
    Agraph_t *gr;
    FILE *fp;
    gvc = gvContext();
    fp = fopen((path + ".dot").c_str(), "r");
    gr = agread(fp, nullptr);
    gvLayout(gvc, gr, "dot");
    gvRender(gvc, gr, "png", fopen((path + ".png").c_str(), "w"));
    gvFreeLayout(gvc, gr);
    agclose(gr);
    return (gvFreeContext(gvc));
}

我正在使用clion IDE和cmake,所以这是我的CMakelists.txt

cmake_minimum_required(VERSION 3.16)
project(untitled)

set(CMAKE_CXX_STANDARD 14)

INCLUDE_DIRECTORIES(SYSTEM "/usr/include/graphviz/")

add_executable(untitled main.cpp)

TARGET_LINK_LIBRARIES(untitled LINK_PUBLIC "/usr/lib/x86_64-linux-gnu/libcgraph.so")

问题是,当我构建项目时,出现类似以下错误 undefined reference to 'gvContext'

但是clion可以看到此功能并gvc.h正确引用,所以我认为问题出在CMakeLists.txt

我不明白如何正确引用CMake中的外部库以及指定哪个文件。那我该怎么办呢?

比目鱼

gvContext在中libgvc.so,因此您的最终CMake行应显示为:

target_link_libraries(untitled PUBLIC cgraph gvc)

这利用了target_link_libraries文档的“普通库名称”部分

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何配置CMake以使用-fPIC构建库?

来自分类Dev

使用Graphviz作为库删除节点

来自分类Dev

使用带有CMake和Clang的GraphViz的Callgraphs

来自分类Dev

配置ccmake使用的cmake版本

来自分类Dev

使用CMake链接静态库

来自分类Dev

如何使用CMake构建库

来自分类Dev

使用 CMake 使用多配置编译 Boost

来自分类Dev

在CMake中配置代码时包装库的缓存变量

来自分类Dev

使用CMake创建和使用静态库

来自分类Dev

使用CMake创建和使用库

来自分类Dev

如何使用cmake正确配置升压测试

来自分类Dev

如何使用CMake配置DBus依赖项

来自分类Dev

添加使用CMake的库的CMake工作流程

来自分类Dev

使用CMake将共享库与静态链接

来自分类Dev

如何使用cmake查找增强池库?

来自分类Dev

如何使用CMake查找RelWithDebInfo或MinSizeRel库?

来自分类常见问题

如何使用cmake创建共享库?

来自分类Dev

使用CMake和MinGW构建PoDoFo库

来自分类Dev

使用CMake而不是g ++链接GDAL库

来自分类Dev

如何使用CMake链接库?

来自分类Dev

如何使用CMake自动链接Boost库

来自分类Dev

使用cmake链接外部cblas存档库

来自分类Dev

如何使用CMake包含asio库?

来自分类Dev

如何使用cmake正确链接库?

来自分类Dev

cmake找不到使用vcpkg安装的库

来自分类Dev

如何在CMake中使用PJSIP库?

来自分类Dev

使用CMake构建库时出错

来自分类Dev

使用CMake链接库OpenSubdiv

来自分类Dev

在Windows中使用CMake构建POCO库