PickmePickme!
10
2017-03-20 18:20:31.0
2
184

C++에서는 컴파일 되는데 리눅스에서는 컴파일 안되는 부분 질문


안녕하세요.


소스는 다음과 같으며



#pragma once


#include <nl/tools/performer/factory/PerformerFactory.h>


namespace NiceLib
{
 //*
 template<class T>
 class PerformerHelper
 {
 public:
  PerformerHelper(std::string);
  static boost::shared_ptr<Performer> Create();
 };


 template<class T>
  boost::shared_ptr<Performer> PerformerHelper<T>::Create()
 {
  boost::shared_ptr<Performer> temp(new T());
  return temp;
 }


 template<class T>
 PerformerHelper<T>::PerformerHelper(std::string type)
 {
  PerformerFactory::instance().RegisterPerformer(type, PerformerHelper<T>::Create);  
 }
 //*/
}





다음 소스인데요... 여기서  PerformerFactory::instance().RegisterPerformer(type, PerformerHelper<T>::Create); 부분에서 리눅스에서 빌드하면


In constructor 'NiceLib::PerformerHelper<T>::PerformerHelper(std::string)':
./nl/tools/performer/factory/PerformerConstructible.h:36: error: 'PerformerFactory' has not been declared


라고 뜨는데 어떻게 고쳐야 될지 질문드립니다 . ㅜㅠ


0
0
  • 답변 2

  • shaffron
    1k
    2017-03-20 19:07:03.0

    GCC 버전 한번 변경해보세요.

    컴파일러 버전이 다르면 컴파일 오류를 뿜는 경우가 있더군요.

    0
  • 꾸아앙
    467
    2017-03-20 20:00:22.0

    c++에서는 된다는게 어떤 의미인지요?

    윈도우에서는 컴파일 된다는건가요?

    로그상으로는 ./nl/tools/performer/factory/PerformerConstructible.h 여길 확인해보시라고밖에 말씀을 못드리겠네요

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.