gpt4 book ai didi

c++ - 使用graphviz库配置CMake

转载 作者:行者123 更新时间:2023-12-02 10:16:28 25 4
gpt4 key购买 nike

我正在尝试制作一个将从.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中的外部库以及指定哪个文件。那我该怎么办呢?

最佳答案

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

target_link_libraries(untitled PUBLIC cgraph gvc)

这利用了 target_link_libraries documentation的“普通库名称”部分。

关于c++ - 使用graphviz库配置CMake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61771170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com