ошибка при попытке проbuildеть библиотеку...
От: avsokolov  
Дата: 28.12.07 15:29
Оценка:
.h file:

#if defined(_WIN32) && !defined(__GNUC__)
#  ifdef LOGLIB_DLL
#    define LOGLIB_DECL __declspec(dllexport)
#  else
#    define LOGLIB_DECL __declspec(dllimport)
#  endif 
#endif // WIN32

#ifndef LOGLIB_DECL
# define LOGLIB_DECL
#endif
...
      class LogWay{
    ...
    public:
        virtual ~LogWay()=0;
    private:
        virtual void Write(const LogMessage&)=0;
    };

      class LOGLIB_DECL LogFile: public LogWay {
    public:
        LogFile(std::string strFilename);
    private:
//        virtual void Write(const LogMessage&);
        std::ofstream m_ofile;
        std::string m_strFileName;
    };


.cpp file:
...

LogFile::LogFile(std::string strFileName): m_strFileName(strFileName)
{}
...


компилируется без ошибок (работаю в MSVStudio)
когда выбираю Rebuild Solution, получаю ошибку:

Linking...
Creating library F:\avsokolov's documents\Visual Studio 2005\Projects\LogLibrary\Debug\LogLibrary.lib and object F:\avsokolov's documents\Visual Studio 2005\Projects\LogLibrary\Debug\LogLibrary.exp
LogLibrary.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const logspace::LogFile::`vftable'" (__imp_??_7LogFile@logspace@@6B@) referenced in function "public: __thiscall logspace::LogFile::LogFile(class std::basic_string,class std::allocator >)" (??0LogFile@logspace@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
F:\avsokolov's documents\Visual Studio 2005\Projects\LogLibrary\Debug\LogLibrary.dll : fatal error LNK1120: 1 unresolved externals

> Может для классов содержащих виртуальные функции есть какое то правило??

> такая же ошибка возникает на Linux
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.