Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows中使用带有Clion的Graphviz_C_Cmake_Graphviz - Fatal编程技术网

在Windows中使用带有Clion的Graphviz

在Windows中使用带有Clion的Graphviz,c,cmake,graphviz,C,Cmake,Graphviz,我不熟悉在C中使用外部库,所以这可能是一个非常愚蠢的错误。当我尝试使用提供的CMakeLists.txt运行下面的程序时,会出现引用错误。有人知道问题是什么吗 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

我不熟悉在C中使用外部库,所以这可能是一个非常愚蠢的错误。当我尝试使用提供的CMakeLists.txt运行下面的程序时,会出现引用错误。有人知道问题是什么吗

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(SOURCE_FILES main.c)
include_directories("${GRAPHVIZ_INCLUDE_DIR}")
add_executable(Learning ${SOURCE_FILES})
main.c

#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);

    agsafeset(nodeA, "color", "red", "");
    gvLayoutJobs(gvc, graph);
    gvRenderJobs(gvc, graph);
    gvFreeLayout(gvc, graph);

    }
编辑--编辑cmakeslists以添加目标链接库,但我得到以下错误

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")

target_link_libraries( "${GRAPHVIZ_LIB_DIR}" )

set(SOURCE_FILES main.c)
include_directories("${GRAPHVIZ_INCLUDE_DIR}")
add_executable(Learning ${SOURCE_FILES})
导致此错误

"C:\Program Files\JetBrains\CLion 2017.2.1\bin\cmake\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" E:\Development\C\Learning
CMake Error at CMakeLists.txt:8 (target_link_libraries):
  Cannot specify link libraries for target "C:\Program Files
  (x86)\Graphviz2.38\lib\release\lib" which is not built by this project.


-- Configuring incomplete, errors occurred!
See also "E:/Development/C/Learning/cmake-build-debug/CMakeFiles/CMakeOutput.log".

[Finished]

您需要使用
target\u link\u库(学习路径/to/graphviz.so)

在安装的graphviz文件夹中没有.so文件来链接graphviz库。我在release中有.dll和.libs我尝试使用target_linked_库链接到graphviz lib/release库,但得到“无法为target指定链接库”C:\Program Files(x86)\graphviz 2.38\lib\release“它不是由此项目生成的。在windows上,您需要
.lib
文件。你能准确地显示你的
target\u link\u库
行吗?添加到“编辑”下的问题中--仔细看看我是如何编写该命令的,以及你是如何编写的。此外,此命令应位于
add\u executable
之后。
"C:\Program Files\JetBrains\CLion 2017.2.1\bin\cmake\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" E:\Development\C\Learning
CMake Error at CMakeLists.txt:8 (target_link_libraries):
  Cannot specify link libraries for target "C:\Program Files
  (x86)\Graphviz2.38\lib\release\lib" which is not built by this project.


-- Configuring incomplete, errors occurred!
See also "E:/Development/C/Learning/cmake-build-debug/CMakeFiles/CMakeOutput.log".

[Finished]