2016-11-30 66 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'之间有一个相当根本的区别。 –

相关问题