Hi Aida,

        The error you get says that the linker cannot find the definition of
a function. However the compiles includes a reference to this function using
a .h file. The function is itksys::SystemToolsManager::SystemToolsManager().


        To find where is this function I searched in GIMIAS source code and
I found it in ITK-3.20 third party folder: SystemTools.cxx. If you open ITK
solution in Visual Studio, you will see that this file is compiled inside
the library itksys.lib.

        So, if you receive this linking error when generating a library
called "A", it seems that the library itksys.lib is not included in the
linking process of the library "A", however, the library includes the header
files of itksys. To check the linking properties of a project, you need to
select the project in Visual Studio, right click and select
Properties->(Librarian or Linker)->Input->Additional dependencies. 

        The first test I would do is to include the file itksys.lib in the
linking properties of your library and check if that fixes the error. Later
I would check that the library itksys is generated successfully and that the
dependencies are correctly set. 

Best regards,
Xavi

From: Aida Ninyerola [mailto:[email protected]] 
Sent: viernes, 15 de abril de 2011 10:01
To: [email protected]
Subject: [Gimias-developers] developing my own plugin & library

Hi,

I've continued the development of the new plugin with my own library but
I've now a new linking error that I don't know how to solve.

My situation is the following one. My library has a class called "Prova"
witha a method (void nova()). In my plugin I call first an API which later
calls the method of my library.

In the processor of my plugin I have: 
qd::QuantiDopaAPI qd_api;        
qd_api.Rec2dFBP();
And in the API:
void qd::QuantiDopaAPI::Rec2dFBP(){
    tl::Prova ref;
    ref.nova();
}
The comunication between the processor and the API works correctly. I've
tried it before printing something on the screen instead of calling a
function of my library. But the problem appears when I want to use the
method "nova". The errors I get are:

Error    1    error LNK2019: símbolo externo "public: __cdecl
itksys::SystemToolsManager::SystemToolsManager(void)"
(??0SystemToolsManager@itksys@@QEAA@XZ) sin resolver al que se hace
referencia en la función "void __cdecl itksys::`dynamic initializer for
'SystemToolsManagerInstance''(void)"
(??__ESystemToolsManagerInstance@itksys@@YAXXZ)    QuantiDopaLibLib_D.lib

Error    2    error LNK2019: símbolo externo "public: __cdecl
itksys::SystemToolsManager::~SystemToolsManager(void)"
(??1SystemToolsManager@itksys@@QEAA@XZ) sin resolver al que se hace
referencia en la función "void __cdecl itksys::`dynamic atexit destructor
for 'SystemToolsManagerInstance''(void)"
(??__FSystemToolsManagerInstance@itksys@@YAXXZ)    QuantiDopaLibLib_D.lib

I hope I gave all the necessary information.

Thank you in advance for all your help!
Aida



------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Gimias-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gimias-developers

Reply via email to