2010-05-27 7 views
1

현재 프로젝트에서 이미지 처리를 위해 CImg 라이브러리를 사용하고 싶습니다. 이 경우Codegear 2009 CImg 컴파일 문제

[BCC32 Error] CImg.h(39159): E2285 Could not find a match for 'CImg<unsigned char>::move_to<t>(const CImg<unsigned char>)'

사람이 알고 있나요 :

int rows =5; 
int cols = 5; 

CImg<double> img(rows,cols); 

나는 다음과 같은 오류가 발생합니다 : 나는 소스 파일 CImg.h 다음과 같은 코드를 넣어 포함 코드 기어 C++ 빌더 2009을 사용하고 있습니다 a #define Codegear C++ Builder 2009에서 빌드 할 때 사용해야합니다. 또는 단순히 호환되지 않습니까?

답변

2

단일 헤더 파일에 포함 된 40,000 개의 라인 라이브러리? 그것은 나쁜 생각처럼 보입니다 ...

어쨌든, 불행히도 C++ Builder 2009는 매우 훌륭한 C++ 컴파일러가 아니므로 다른 경우에는 합법적 인 C++ 구조를 처리하지 못하는 경우가 많습니다. (C++ 컴파일러가 C++ 표준의 한 측면이나 다른 것을 제대로 처리하지 못하는 것은 이상한 일이 아닙니다.)

이 경우, 다른 라이브러리를 찾고 다른 라이브러리를 찾고 컴파일러, C++ Builder의 새롭고 더 나은 버전이 나올 때까지 기다리거나 라이브러리를 조정하여 작동하도록하십시오. 당신이 시도하고 라이브러리 작업을하기로 결정한 경우이 경우

, 다음과 같은 변경 사항은 시작할 수 있어야합니다 (CIMG 1.3.4 라인 9145) move_to``의 템플릿 버전에 대한

  • 을 , C++ Builder는 t를 'move_to'매개 변수에 대한 템플릿 매개 변수로 탐지하지 못합니다. 현재의 형태 보증 된 버전의 함수 선언을 변경합니다
     
        template<typename t> 
        CImg<t>& move_to(CImg<t>& img) { 
    
    을 간단한
     
        template<typename t> 
        t& move_to(t& image) { 
    
  • 도움말 C++ 빌더에 선 39163에 draw_text 호출에 대한 적절한 템플릿 매개 변수를 알아낼 : draw_text<unsigned char,unsigned char>(...)draw_text(...)를 교체합니다.

이 두 개 이상의 컴파일러 오류가 있습니다. CImg 소스 코드를 비슷하게 조정해야합니다.

모든 것을 작동시킬 수 있다면 CImg 프로젝트가 변경 사항을 통합하여 공식 릴리스에 C++ Builder 지원을 추가하는 데 관심이 있는지 확인할 수 있습니다.

+0

감사합니다. Josh. 그러나 나는 도서관을 탐색하는 것 같지 않습니다. VS 2005에서 빌드됩니다. 그래서 대신 크로스 컴파일러 호환 dll을 만들었습니다. – Seth