2016-11-30 75 views
0

我需要安裝一個在運行openSuse 11 i586的舊機器上使用Qt的lib。實際上,我的構建機器運行Ubuntu,我們有我們自己的Qt編譯 - 爲了使用靜態功能。顯然,兩臺機器(版本和目標)都有兼容的系統。QString在相同的編譯(但不同的系統)上返回不同的sting

一切正常,除了QString。在目標機器上QString打印奇怪的字符。

QTextStream out(stdout); 
QString text = "ABCDEFGHJKLNOPQRSTUWXYZ \n"; 
out << text; 

例如,上述目標機器上的結果這的代碼:

ABCDEFGHEFGHSTUWXYZ

是否有任何特技來解決這個?也許與charset有關。我感謝任何幫助。

+0

可能是文件編碼問題。嘗試在[QStringLiteral宏](http://doc.qt.io/qt-5/qstring.html#QStringLiteral)中包裝字符串文字 – MrEricSir

+0

'std :: cout << text.toStdString()'顯示了什麼? – jpo38

+0

@ jpo38顯示相同的輸出(ABCDEFGHEFGHSTUWXYZ)。在toStdString() – Raiden

回答

0

爲了達到這個目的,理想情況下,您的可執行文件不能動態鏈接到任何內容。您的系統和目標系統之間很可能存在一些glibc或libgcc魔術醬之間的二進制不兼容問題。配置Qt​​- 我敢打賭它會工作。

+0

我已經在使用-static配置Qt了。你的意思是我的lib + exe應該也使用static? – Raiden

+0

'-static'和'-static-runtime'之間有一個相當根本的區別。 –

相關問題