2016-03-07 48 views
1

我有一個應用程序在Qt Creator的Ubuntu桌面系統上編寫,我想在另一個系統(Ubuntu服務器)上編譯它。該服務器沒有GUI,因此編譯必須通過CLI完成。在發出make命令時,它開始編譯,但拋出一個編譯器錯誤說:QByteArray成員沒有找到

error: ‘fromStdString’ is not a member of ‘QByteArray’ QByteArray myData = QByteArray::fromStdString(data);

完全相同的代碼只能在另一個系統上找到並編譯好。我該怎麼辦才能解決這個問題?這是在系統上安裝庫還是其他問題?

+0

我未能找到'QByteArray :: fromStdString()'函數。請將Qt文檔指向它的定義。 – vahancho

+0

問題標題要求QString成員,但您的代碼正在使用QByteArray。你真的需要哪一個?另外,告訴我們你在哪個系統中使用的Qt版本 – Vitor

回答

1

在Qt4中,QString :: fromStdString()需要使用STL支持編譯Qt,所以這可能是你的問題。

Qt Docs

This constructor is only available if Qt is configured with STL compatibility enabled.

但是,如果你使用的QByteArray,請參閱@ iksemyonov的回答

+0

你的鏈接指向'QString'類的文檔,而問題是關於'QByteArray'類。 – iksemyonov

+0

你說得對,我對OP的標題感到困惑,它聲明它是一個QString成員。我會要求澄清 – Vitor

+0

看看QByteArray和QString的內部實現,看起來你和iksemyonov的答案都是相關的。 'QByteArray :: fromStdString'看起來像只有在爲Qt啓用STL兼容性時纔會起作用。 – callyalater