2017-02-14 7 views
-1

enter image description hereなぜエラーが出るのか分かりません。 x86_64システム用にコンパイルすると同じコードがうまく動作しますが、ターゲットをBeaglebone Blackに変更してangstromツールチェーンに切り替えると、QTcreatorがこれらの行にエラーを出し始めました。QTコードをコンパイル中に奇妙で不明なエラーが発生する

//connect(process, &QProcess::readyReadStandardError, [=]{ 
ui->textBrowser->append(process->readAllStandardError()); 
}); 
connect(process, &QProcess::readyReadStandardOutput, [=]{ 
ui->textBrowser->append(process->readAllStandardOutput()); 
}); 

「[=]」という表現は誤りです。事実、私はこのエラーがなぜ起こっているのか分かりません。これはバージョンに関連する可能性がありますか?bcoz BBBにはqt4が埋め込まれています。どんな助けもありがとう。

+0

あなたはCONFIG + = C++ 14を追加したことを確認しましたか? – 0Tech

+0

https://wiki.qt.io/New_Signal_Slot_Syntaxはqt5のみです – user3528438

+0

私はCONFIG + = C++ 11 – Learner

答えて

1

シグナルをC++ 11λに接続するための構文がQt 5に追加されました。以前のバージョン(Qt4)ではconnect()の正しいシグネチャが定義されていないため、使用できません。次のように宣言したスロットで

connect(process, SIGNAL(readyReadStandardError()), receiver, SLOT(yourCustomSlot())); 

:あなたは正しい構文と一致するようにコードを変換する必要があります

class MyReceiverClass { 

slots: 
    void yourCustomSlot() { 
     ui->textBrowser->append(process->readAllStandardOutput()); 
    } 
}; 
+0

littileビットより多くを助けることができますか? mainwindow.hにスロットを追加するとエラーが発生します。 mainwindow.cppの元の接続ラインを、mainwindow.hのクラスMyReceiverClassを提案し追加したものに置き換えました。コードがコンパイルされません。 – Learner

+0

あなたは新しい質問を書くべきです – Antwane

関連する問題