c - Using Graphviz with Clion in Windows -


i'm new using external libraries in c silly mistake. reference errors when try run below program using provided cmakelists.txt. can see issue is?

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

output

"c:\program files\jetbrains\clion 2017.2.1\bin\cmake\bin\cmake.exe" --build e:\development\c\learning\cmake-build-debug --target learning -- -j 2 scanning dependencies of target learning [ 50%] building c object cmakefiles/learning.dir/main.c.obj [100%] linking c executable learning.exe cmakefiles\learning.dir/objects.a(main.c.obj): in function `main': e:/development/c/learning/main.c:38: undefined reference `gvcontext' e:/development/c/learning/main.c:39: undefined reference `_imp__agdirected' e:/development/c/learning/main.c:39: undefined reference `agopen' e:/development/c/learning/main.c:40: undefined reference `agnode' e:/development/c/learning/main.c:41: undefined reference `agnode' e:/development/c/learning/main.c:42: undefined reference `agedge' e:/development/c/learning/main.c:44: undefined reference `agsafeset' e:/development/c/learning/main.c:45: undefined reference `gvlayoutjobs' e:/development/c/learning/main.c:46: undefined reference `gvrenderjobs' e:/development/c/learning/main.c:47: undefined reference `gvfreelayout' collect2.exe: error: ld returned 1 exit status mingw32-make.exe[3]: *** [learning.exe] error 1 cmakefiles\learning.dir\build.make:96: recipe target 'learning.exe' failed mingw32-make.exe[2]: *** [cmakefiles/learning.dir/all] error 2 cmakefiles\makefile2:66: recipe target 'cmakefiles/learning.dir/all' failed cmakefiles\makefile2:78: recipe target 'cmakefiles/learning.dir/rule' failed mingw32-make.exe[1]: *** [cmakefiles/learning.dir/rule] error 2 mingw32-make.exe: *** [learning] error 2 makefile:117: recipe target 'learning' failed 

edit -- edited cmakeslists add target_link_libraries error below

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

results in error

"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 @ cmakelists.txt:8 (target_link_libraries):   cannot specify link libraries target "c:\program files   (x86)\graphviz2.38\lib\release\lib" not built project.   -- configuring incomplete, errors occurred! see "e:/development/c/learning/cmake-build-debug/cmakefiles/cmakeoutput.log".  [finished] 

you need link in graphviz library using target_link_libraries(learning path/to/graphviz.so).


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -