2012-02-14 3 views
0

내가 (directDrawingPainterPath 유형의 QPainterPath의 클래스 멤버)이 작업을 수행하려합니다 (외부 해결되지 않은) : 그러나QT4, QPainterPath의 직접 할당이 작동하지

directDrawingPainterPath = QPainterPath(point); 

은 Visual Studio에서 프로그램을 컴파일하는 날를 가져옵니다 다음과 같은 오류 :

1>ScribbleWidget.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QPainterPath & _cdecl QPainterPath::operator=(class QPainterPath &&)" ([email protected]@[email protected][email protected]@Z) referenced in function "protected: virtual void __cdecl ScribbleWidget::mousePressEvent(class QMouseEvent *)" ([email protected]@@[email protected]@@Z)

내가 이런 식으로 재 작성 :

QPainterPath tmp(point); 
directDrawingPainterPath = tmp; 

그런 다음 작동합니다. 이것은 또한 다른 과제에 대해 발생합니다

이 작동합니다

QString tmp = att.value().toString(); 
name = tmp; 

이되지 않습니다

name = att.value().toString(); 

누구든지 문제가 될 수있는 것을 아는 사람?

업데이트

난 그냥 해결책을 발견 : 문제는 내가 VS2010와 프로젝트를 컴파일하는 동안, VS2008로 컴파일 된 QT에 연결을 시도이었다. 또한 VS2010가 모든 일을하게 컴파일 것 QT를 사용

...

답변

0

방금 ​​해결책을 찾았습니다. 문제는 VS2010으로 프로젝트를 컴파일하는 동안 VS2008로 컴파일 된 QT와 연결하려고했기 때문입니다. 내가 조금, 명시된 바와 같이 ... 그러나, 내가 찾은 코드를 다시 작성할 때 작동하기 때문에 연결 문제가 될 수 없습니다

0

는 릴리스 및 디버그 빌드 모두 프로젝트 파일에 다음인가?

LIBS += $$quote(PathtoQtLib/NameofQtLib.lib)

PathtoQtLib는 C 같은 것입니다

: \ Qt를 \ 4.8.0 LIB \ 및 NameofQtLib는 QtGui4.lib입니다.

프로젝트 파일을 사용하지 않는 경우 연결하려는 라이브러리를 올바르게 구성 했습니까? QPainterPath :: 연산자 = (클래스 QPainterPath & &) 를 이것이 '를 rvalue 참조'입니다, 느릅 나무 Qt는 아직 구현되지 않은 : 당신이 오류로 인해 C++ (11) 모드에서 compilling 것 같은

+0

또한 VS2010가 모든 일을하게 컴파일 것 QT를 사용

... 솔루션을 지금 (업데이트 참조). 어쨌든 도움을 주셔서 감사합니다. –

1

보인다. 메서드 또는 함수에서 임시 값을 반환하고 해당 값을 변수에 할당한다는 의미입니다.

값을 tmp 변수 (QPainterPath tmp (point); rectDrawingPainterPath = tmp;)에 저장하면 일반 연산자 = 메서드를 사용하므로 제대로 작동합니다.

Visual Studio에서 C++ 0x를 사용하지 않도록 설정하십시오. 사용하지 않았으므로 도움이되지 않습니다. :)

+0

아주 좋은 관찰 ... 그러나 문제는 다른 곳에서 발생했습니다 (질문에 대한 나의 업데이트 참조). 하지만 도움을 주셔서 감사합니다! –

관련 문제