2012-02-14 3 views
0

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の\ libに4.8.0 \とNameofQtLibはQtGui4.libです。

プロジェクトファイルを使用していない場合は、リンク先のライブラリを正しく設定していますか?あなたがエラーのためにC++ 11モードでcompillingているよう

+0

もVS2010は、すべての作業を行ってコンパイルされていますQTを使用して

...今すぐ解決してください(Updateを参照)。とにかく助けてくれてありがとう。 –

1

が見えます: QPainterPath ::演算子=(クラスQPainterPath & &) これは「右辺値参照」で、ウィッヒQtはまだ実装されていませんでした。つまり、メソッドまたは関数から一時的な値を返し、その値を変数に代入することを意味します。

値をtmp変数(QPainterPath tmp(point); rectDrawingPainterPath = tmp;)に保存すると、通常の演算子=メソッドが使用されているため、動作します。

Visual StudioでC++ 0xを無効にしようとしましたが、私はそれを使ったことがないので、それを助けてください。 :)

+0

しかし、問題はどこか他のところでした(私の質問への更新を見てください)。しかし、助けてくれてありがとう! –

関連する問題