none
symboles non trouvés au link: question de nommage? RRS feed

  • Question

  • Bonjour,

    Je suis maintenant au Link, et sans surprise j'ai de nouveaux problèmes. Je vais documenter l'un des problème, sachant que les autres sont du même type. Je vous donne le source d'un petit fichier, son header, et les messages d'erreur.  Ça ressemble à un problème de nommage; mais je ne vois pas ce qu'il faut faire pour avoir le bon nommage. Pouvez vous m'aider?

    La Classe:

    /*******************************************************************************
    * FILE NAME: POSM.cpp
    * PURPOSE:   This file contains implementation of the methods of
    *            CPOSM class.
    * HISTORY:
    * Date        Version                   Author
    * 26/06/2003  initial version :1.0      SEG
    *******************************************************************************/
    //--------------------------- INCLUDE-FILES ------------------------------------
    #include "StdAfx.h"
    #include "ibase.h"
    #include "IBPP.h"
    #include "AlignStructure.h"
    #include "Macro.h"
    #include "EnumerationM.hpp"
    #include "Enumerations.hpp"
    #include "StructureM.h"
    //----------------------------GLOBAL NAMESPACE----------------------------------
    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    //------------------------GLOBAL-INCLUDE-FILES----------------------------------
    #include "TypeDefsM.hpp"
    #include "POSM.h"
    //----------------------------GLOBAL DATA---------------------------------------
    //----------- METHOD IMPLEMENTATION OF CLanguage Class -------------------------
    SpecificationLoader::CPOSM::CPOSM()
    {
    	;
    }
    
    SpecificationLoader::CPOSM::~CPOSM()
    {
    	;
    }
    
    std::wstring SpecificationLoader::CPOSM::GetPOSLabelWithPOS(enPOS POS)
    {
      std::wstring twsPOS[NUMBER_OF_POS] = {L"NONE",L"PREP",L"ART",L"ADJ",L"NOUN",L"NUMBER",L"MARK",
      L"SENT",L"STOPMARK",L"COMMA",L"CONJ",L"PRONOUN",L"VERB",L"AUX",L"ADV",L"PARTICIPLE",L"BLANK",
      L"ABREV",L"OTHER"};
      return twsPOS[(int)POS];
    } // Return the label of the POS like in the INI file
    
    enPOS SpecificationLoader::CPOSM::GetPOSWithPOSLabel(std::wstring wsPOS)
    {
      std::wstring twsPOS[NUMBER_OF_POS] = {L"NONE",L"PREP",L"ART",L"ADJ",L"NOUN",L"NUMBER",L"MARK",
      L"SENT",L"STOPMARK",L"COMMA",L"CONJ",L"PRONOUN",L"VERB",L"AUX",L"ADV",L"PARTICIPLE",L"BLANK",
      L"ABREV",L"OTHER"};
      unsigned int iPOS = NUMBER_OF_POS;
    
      while (--iPOS > POS_NONE && twsPOS[iPOS] != wsPOS);
    
      return (enPOS)iPOS;
    } // Return the enum of the POS like in the INI file
    };
    //------------------------------------------------------------------------------

    Le header:

    /*******************************************************************************
     * NOM: 
     * ROLE: 
     * HISTORIQUE:
        * 05/05/2001, xxx, initial version
    *******************************************************************************/
    #ifndef POSM_H
    #define POSM_H
    /*_____INCLUDE-FILES__________________________________________________________*/
    #pragma managed
    /*_____GLOBAL-DEFINE__________________________________________________________*/
    /*_____GLOBAL-NAMESPACE_______________________________________________________*/
    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Collections::Generic;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    /*_____GLOBAL-DATA____________________________________________________________*/
    /*_____GLOBAL-MACROS__________________________________________________________*/
    /*_____GLOBAL-FUNCTIONS-PROTOTYPES____________________________________________*/
    	ref class CPOSM
    	{
    	public:
    		stPOS  stPos;//	Part Of Speech de l'element
    		enPOS  POS;											
    		CPOSM::CPOSM();
    		CPOSM::~CPOSM();
    		std::wstring CPOSM::GetPOSLabelWithPOS(enPOS POS);
    		enPOS CPOSM::GetPOSWithPOSLabel(std::wstring wsPOS);
    	};
    };
    #endif /* POSM_H */

    et les diagnostic du linker

    1>OpenAFile.obj : error LNK2020: jeton non résolu (0600001C) SpecificationLoader.CPOSM::.ctor
    1>MainMenue.obj : error LNK2020: jeton non résolu (0600001C) SpecificationLoader.CPOSM::.ctor
    1>WordManager.obj : error LNK2020: jeton non résolu (0600001C) SpecificationLoader.CPOSM::.ctor
    1>BuildComponents.obj : error LNK2020: jeton non résolu (0600001C) SpecificationLoader.CPOSM::.ctor
    1>InterbaseManagerM.obj : error LNK2020: jeton non résolu (0600001C) SpecificationLoader.CPOSM::.ctor
    1>OpenAFile.obj : error LNK2020: jeton non résolu (0600001D) SpecificationLoader.CPOSM::~CPOSM
    1>MainMenue.obj : error LNK2020: jeton non résolu (0600001D) SpecificationLoader.CPOSM::~CPOSM
    1>WordManager.obj : error LNK2020: jeton non résolu (0600001D) SpecificationLoader.CPOSM::~CPOSM
    1>BuildComponents.obj : error LNK2020: jeton non résolu (0600001D) SpecificationLoader.CPOSM::~CPOSM
    1>InterbaseManagerM.obj : error LNK2020: jeton non résolu (0600001D) SpecificationLoader.CPOSM::~CPOSM
    1>OpenAFile.obj : error LNK2020: jeton non résolu (06000020) SpecificationLoader.CPOSM::GetPOSLabelWithPOS
    1>MainMenue.obj : error LNK2020: jeton non résolu (06000020) SpecificationLoader.CPOSM::GetPOSLabelWithPOS
    1>WordManager.obj : error LNK2020: jeton non résolu (06000020) SpecificationLoader.CPOSM::GetPOSLabelWithPOS
    1>BuildComponents.obj : error LNK2020: jeton non résolu (06000020) SpecificationLoader.CPOSM::GetPOSLabelWithPOS
    1>InterbaseManagerM.obj : error LNK2020: jeton non résolu (06000020) SpecificationLoader.CPOSM::GetPOSLabelWithPOS
    1>OpenAFile.obj : error LNK2020: jeton non résolu (06000021) SpecificationLoader.CPOSM::GetPOSWithPOSLabel
    1>MainMenue.obj : error LNK2020: jeton non résolu (06000021) SpecificationLoader.CPOSM::GetPOSWithPOSLabel
    1>WordManager.obj : error LNK2020: jeton non résolu (06000021) SpecificationLoader.CPOSM::GetPOSWithPOSLabel
    1>BuildComponents.obj : error LNK2020: jeton non résolu (06000021) SpecificationLoader.CPOSM::GetPOSWithPOSLabel
    1>InterbaseManagerM.obj : error LNK2020: jeton non résolu (06000021) SpecificationLoader.CPOSM::GetPOSWithPOSLabel
    1>OpenAFile.obj : error LNK2020: jeton non résolu (0600004C) SpecificationLoader.CAnalysedSegmentM::.ctor
    1>MainMenue.obj : error LNK2020: jeton non résolu (0600004C) SpecificationLoader.CAnalysedSegmentM::.ctor
    1>WordManager.obj : error LNK2020: jeton non résolu (0600004C) SpecificationLoader.CAnalysedSegmentM::.ctor
    1>BuildComponents.obj : error LNK2020: jeton non résolu (0600004C) SpecificationLoader.CAnalysedSegmentM::.ctor
    1>InterbaseManagerM.obj : error LNK2020: jeton non résolu (0600004C) SpecificationLoader.CAnalysedSegmentM::.ctor

    Ces diagnostique montre qu'il ne trouve pas les primitives de la classe, qui sont régulièrement déclarés. Il semble qu'il y ait un problème de nommage. Je pense à la double référence SpecificationLoader:: SpecificationLoader que j'ai déjà rencontré, mais alors comment l'exprimer?


    Jean Noël Martin


    • Modifié JeanNoel53 samedi 23 novembre 2013 11:36
    samedi 23 novembre 2013 11:35

Réponses

  • Il s'agissait bien d'un problème de double indexation. Je l'ai résolue en retirant les préfixe SpecificationLoader:: des primitives

    Jean Noël Martin

    • Marqué comme réponse JeanNoel53 dimanche 24 novembre 2013 19:51
    dimanche 24 novembre 2013 19:51