[so][tema3] eroare linkare windows

Stefan Bucur stefan.bucur at gmail.com
Tue Dec 4 14:20:39 EET 2007


On Dec 4, 2007 1:17 PM, Razvan Deaconescu <razvand at cs.pub.ro> wrote:
> On Tue, 2007-12-04 at 12:55 +0200, Claudiu Tanase wrote:
> > Am si eu o problema: la compilare merge totul ok, imi face dllurile cum
> > trebuie si cand ajunge sa faca cd _test && nmake build-post nu imi
> > recunoaste nici o functie din monitor sau RW:
> >
> >       TestRW.obj : error LNK2019: unresolved external symbol "struct Monitor *
> > __cdecl CreateRWMonitor(void)" (?CreateRWMonitor@@YAPAUMonitor@@XZ)
> > referenced in function "void __cdecl TestRW(void)" (?TestRW@@YAXXZ)
> >
> > In .h-uri am declarat toate functiile astea cu extern
> > __declspec(dllexport), am compilat cu /TP etc. Am inteles ca ar fi o
> > problema cu obiecte de C linkate cu obiecte de C++ din teste, dar am
> > colegi care spun ca le merge si cu .c si /TP. Stie cineva care ar putea fi
> > problema?
> >
> >       Se manifesta inclusiv la testele de pe site, deci nu e din cauza
> > sistemului meu
> >       http://cs.pub.ro/~so/Teme/note/stud/Claudiu%20Tanase/tema3/win/NOTA
>
> Salut!
>
> Raspunsul de mai jos[1] de pe lista de discutii te ajuta?
>
> Razvan
>
> [1] http://cursuri.cs.pub.ro/pipermail/so/2007-December/009349.html
>
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>

Salut!

De asemenea, ai grija ca numele structurii din spatele typedef-ului sa
fie tot Monitor. De exemplu eu aveam ceva gen typedef struct
tagMonitor Monitor; si nu voia sub nici un chip sa-mi faca linking pe
executabilul de test pana nu am definit cu "typedef struct Monitor
Monitor". Acest lucru deoarece, la o listare a tabelei de simboluri
din .dll-ul generat (dintr-un VS2005 Command Prompt, ruleaza "dumpbin
/exports LibMonitor.lib", de exemplu), vei vedea ca numele
simbolurilor exportate de tine contin numele structurii, si nu al
typedef-ului, iar linker-ul va avea nevoie de numele "Monitor" pentru
structura ca sa poata face potrivirea exacta a numelor.

Sper sa te ajute :)

Stefan Bucur


More information about the so mailing list