Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gvgraph.cpp.obj : error LNK2019: unresolved external symbol agclose referenced i n function "private: void __cdecl GammaRay::GVGraph::closeGraph(void)" (?closeGr aph@GVGraph@GammaRay@@AEAAXXZ) #76

Closed
programmernoob opened this issue Mar 21, 2014 · 6 comments
Assignees
Labels

Comments

@programmernoob
Copy link

Hi. I get these compilation errors on Windows 7 x64.
I had to do this because by default it was compiling in debug mode...
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=release ..
Then I executed nmake and the compilation went up to 81% and this is where I got these errors. What library am I missing here? Thanks for your help.

[ 80%] Generating ui_statemachineviewer.h
[ 80%] Building CXX object plugins/statemachineviewer/CMakeFiles/gammaray_statem
achineviewer_ui_plugin.dir/statemachineviewerwidget.cpp.obj
statemachineviewerwidget.cpp
[ 80%] Building CXX object plugins/statemachineviewer/CMakeFiles/gammaray_statem
achineviewer_ui_plugin.dir/gvgraph/gvgraph.cpp.obj
gvgraph.cpp
[ 81%] Building CXX object plugins/statemachineviewer/CMakeFiles/gammaray_statem
achineviewer_ui_plugin.dir/gvgraph/gvgraphitems.cpp.obj
gvgraphitems.cpp
[ 81%] Building CXX object plugins/statemachineviewer/CMakeFiles/gammaray_statem
achineviewer_ui_plugin.dir/gvgraph/gvutils.cpp.obj
gvutils.cpp
[ 81%] Building CXX object plugins/statemachineviewer/CMakeFiles/gammaray_statem
achineviewer_ui_plugin.dir/gammaray_statemachineviewer_ui_plugin_automoc.cpp.obj

gammaray_statemachineviewer_ui_plugin_automoc.cpp
Linking CXX shared module ..\2.1\qt4.8-MSVC-release-x86_64\gammaray_statemachine
viewer_ui_plugin.dll
Creating library gammaray_statemachineviewer_ui_plugin.lib and object gammara
y_statemachineviewer_ui_plugin.exp
gvgraph.cpp.obj : error LNK2019: unresolved external symbol agclose referenced i
n function "private: void __cdecl GammaRay::GVGraph::closeGraph(void)" (?closeGr
aph@GVGraph@GammaRay@@AEAAXXZ)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol gvFreeLayout referen
ced in function "private: void __cdecl GammaRay::GVGraph::closeGraph(void)" (?cl
oseGraph@GVGraph@GammaRay@@AEAAXXZ)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol agget referenced in
function "public: class QList<struct QPair<unsigned __int64,class GammaRay::GVNo
de> > __cdecl GammaRay::GVGraph::gvNodes(void)const " (?gvNodes@GVGraph@GammaRay
@@qeba?AV?$QList@U?$QPair@_KVGVNode@GammaRay@@@@@@xz)
gvutils.cpp.obj : error LNK2001: unresolved external symbol agget
gvgraph.cpp.obj : error LNK2019: unresolved external symbol agnameof referenced
in function "public: class QList<struct QPair<unsigned __int64,class GammaRay::G
VSubGraph> > __cdecl GammaRay::GVGraph::gvSubGraphs(void)const " (?gvSubGraphs@G
VGraph@GammaRay@@qeba?AV?$QList@U?$QPair@_KVGVSubGraph@GammaRay@@@@@@xz)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol Agdirected reference
d in function "private: void __cdecl GammaRay::GVGraph::createGraph(void)" (?cre
ateGraph@GVGraph@GammaRay@@AEAAXXZ)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol AgDefaultDisc refere
nced in function "private: void __cdecl GammaRay::GVGraph::createGraph(void)" (?
createGraph@GVGraph@GammaRay@@AEAAXXZ)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol agdelete referenced
in function "public: void __cdecl GammaRay::GVGraph::removeEdge(unsigned __int64
)" (?removeEdge@GVGraph@GammaRay@@QEAAX_K@Z)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol gvContext referenced
in function "public: __cdecl GammaRay::GVGraph::GVGraph(class QString const &)"
(??0GVGraph@GammaRay@@qeaa@AEBVQString@@@z)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol agnxtedge referenced
in function "public: void __cdecl GammaRay::GVGraph::removeNode(unsigned __int6
4)" (?removeNode@GVGraph@GammaRay@@QEAAX_K@Z)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol agfstedge referenced
in function "public: void __cdecl GammaRay::GVGraph::removeNode(unsigned __int6
4)" (?removeNode@GVGraph@GammaRay@@QEAAX_K@Z)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol agnxtnode referenced
in function "public: void __cdecl GammaRay::GVGraph::removeGraph(unsigned __int
64)" (?removeGraph@GVGraph@GammaRay@@QEAAX_K@Z)
gvgraph.cpp.obj : error LNK2019: unresolved external symbol agfstnode referenced
in function "public: void __cdecl GammaRay::GVGraph::removeGraph(unsigned __int
64)" (?removeGraph@GVGraph@GammaRay@@QEAAX_K@Z)
gvutils.cpp.obj : error LNK2019: unresolved external symbol agopen referenced in
function "struct Agraph_s * __cdecl GammaRay::GVUtils::_agopen(class QString co
nst &,struct Agdesc_s,struct Agdisc_s *)" (?_agopen@GVUtils@GammaRay@@YAPEAUAgra
ph_s@@AEBVQString@@UAgdesc_s@@PEAUAgdisc_s@@@z)
gvutils.cpp.obj : error LNK2019: unresolved external symbol agattr referenced in
function "struct Agsym_s * __cdecl GammaRay::GVUtils::_agnodeattr(struct Agraph
_s *,class QString const &,class QString const &)" (?_agnodeattr@GVUtils@GammaRa
y@@YAPEAUAgsym_s@@PEAUAgraph_s@@AEBVQString@@1@Z)
gvutils.cpp.obj : error LNK2019: unresolved external symbol agnode referenced in
function "struct Agnode_s * __cdecl GammaRay::GVUtils::_agnode(struct Agraph_s
*,class QString const &,bool)" (?_agnode@GVUtils@GammaRay@@YAPEAUAgnode_s@@PEAUA
graph_s@@AEBVQString@@_N@Z)
gvutils.cpp.obj : error LNK2019: unresolved external symbol agedge referenced in
function "struct Agedge_s * __cdecl GammaRay::GVUtils::_agedge(struct Agraph_s
*,struct Agnode_s *,struct Agnode_s *,class QString const &,bool)" (?_agedge@GVU
tils@GammaRay@@YAPEAUAgedge_s@@PEAUAgraph_s@@PEAUAgnode_s@@1AEBVQString@@_N@Z)
gvutils.cpp.obj : error LNK2019: unresolved external symbol agsubg referenced in
function "struct Agraph_s * __cdecl GammaRay::GVUtils::_agsubg(struct Agraph_s
*,class QString const &,bool)" (?_agsubg@GVUtils@GammaRay@@YAPEAUAgraph_s@@PEAU3
@AEBVQString@@_N@Z)
gvutils.cpp.obj : error LNK2019: unresolved external symbol agsafeset referenced
in function "int __cdecl GammaRay::GVUtils::_agset(void *,class QString const &
,class QString const &)" (?_agset@GVUtils@GammaRay@@YAHPEAXAEBVQString@@1@Z)
gvutils.cpp.obj : error LNK2019: unresolved external symbol gvLayout referenced
in function "int __cdecl GammaRay::GVUtils::_gvLayout(struct GVC_s *,struct Agra
ph_s *,char const *)" (?_gvLayout@GVUtils@GammaRay@@YAHPEAUGVC_s@@PEAUAgraph_s@@
PEBD@Z)
..\2.1\qt4.8-MSVC-release-x86_64\gammaray_statemachineviewer_ui_plugin.dll : fat
al error LNK1120: 19 unresolved externals
LINK failed. with 1120
NMAKE : fatal error U1077: 'C:\Qt\CMake\bin\cmake.exe' : return code '0xffffffff
'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\amd64\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\amd64\nmake.exe"' : return code '0x2'
Stop.

C:\Qt\GammaRay\build>

@winterz
Copy link
Member

winterz commented Mar 21, 2014

probably not related, but I think you need to use ming32-make when using the MinGW generated makefiles. this is shown in the Install.txt

I have never tried building with graphviz on windows. did you also build graphviz yourself and with the MinGW compiler system?

@krf
Copy link
Contributor

krf commented Mar 21, 2014

@programmernoob: You're missing the gvc and (cgraph or graph) library. Both should be in your Graphviz install directory. I'm wondering why CMake doesn't bail out on configure time. Do you actually intend to build the State Machine plugin? If yes, can you show us the arguments you pass to CMake and attach/pastebin the contents of CMakeCache.txt?

@programmernoob
Copy link
Author

I used the Nmake and not the ming32.
No I didn't build graphviz myself. But I did build Cmake and VTK myself.
I've got these files : cgraph.dll, graph.lib, graph.h
Is that what you're talking about?
I also seem to have gvc.dll, gvc.lib, gvc.h, gvcext.h, gvcjob.h, gvccommon.h files.
Does this mean that I have the gvc installed but cmake is unable to find it? Do I have to set a system environment variable for gvc and (cgraph or graph) ?

I've got no clue what the State Machine plugin actually is. Do I really need it? This is my first time wanting to try GammaRay. Thanks for the help.

Here is my CMakeCache.txt file:
http://paste.ubuntu.com/7133751/

@krf
Copy link
Contributor

krf commented Mar 25, 2014

@programmernoob: I suggest trying to build that without Graphviz support for now. Clear CMakeCache.txt and don't explicitely pass GRAPHVIZ_ROOT.

We have to apply some more fixes to actually be able to use that third-party library on Windows.

The State Machine plugin is for live-debugging QStateMachine instances, you can learn more at: https://www.kdab.com/kdab-products/gammaray/

@krf krf self-assigned this Mar 25, 2014
@krf krf added the bug label Mar 25, 2014
@winterz
Copy link
Member

winterz commented Mar 25, 2014

I noticed that the Graphviz Windows installer only provides the 32-bit version. So I expect the FindGraphviz will succeed, but the linking will fail when attempting to build a 64-bit version.

I haven't found a 64-bit Graphviz installer yet.

@krf
Copy link
Contributor

krf commented Apr 17, 2014

I think we can close this. You'd have to manually compile Graphviz in order to be able to actually link against it.

@krf krf closed this as completed Apr 17, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants