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