我的Windows桌面上有一个四核i7 CPU.我试图让mingw32-make使用尽可能多的内核进行编译.我已将-j8添加到Build Settings-> Build Steps下的"Make Arguments"字段中.mingw32-make似乎完全忽略了该选项,因为我没有从中获得任何速度提升.当我查看任务管理器中的CPU使用率时,它保持在13%,我只看到一个运行g ++的实例.
现在,使用mingw重建整个项目需要3分钟.使用MSVC重建它只需要15秒.
为了您的信息,我在项目设置中启用了预编译的标题选项.这也使VC的事情变得更快.但我仍然没有看到预编译头与mingw的好处.
如果你有从MTCreator并行编译多个源文件的话,请分享你的意见.谢谢!
在许多情况下,我想覆盖Qt类来扩展或修改它的行为.但是几乎所有Qt类都使用QNetworkDiskCache中的内部私有类,如QNetworkDiskCachePrivate.我知道这种方法有优点.但私人阶层存在一个巨大的问题:它使得超越班级变得更加困难.对于带有源代码的其他C++类库,我通常会覆盖一个类方法,从父类的实现中复制代码,并在此处进行小的修改以实现我想要的行为.但是,在Qt中,私有类不会导出,并且对派生类不可见.由于Qt类通过"d"成员维护私有类中的关键内部数据,因此私有内部类的不可见性使得行为扩展的可能性非常有限.您只能使用少数暴露的公共方法.
我尝试提取类的整个源文件并重命名类名和文件名.但Qt类库交织在一起,以至于在大多数情况下从中提取单个类也很混乱.
我在这里想念一下吗?或者Qt类在可扩展性方面真的很糟糕?
我喜欢GDI +因为它的高性能而且它包含在Windows XP中.但是,它的模糊类和效果类仅适用于GDI + 1.1,后者仅适用于Windows Vista或更高版本.尽管微软计划很快放弃对Windows XP的支持,但仍然有很大一部分人仍然坚持使用XP.如果您制作任何面向消费者的软件,则必须支持Windows XP.但不幸的是,GDI + 1.1在XP下不可再分发.
我尝试了几个开源图像库.然而,当谈到性能时,例如高斯模糊操作,它们明显慢于gdi +.
任何人都可以推荐更好的替代GDI + XP支持吗?
当我使用QtWebkit(内部使用QSslSocket)连接到www.hotmail.com时,登录后出现以下ssl错误:
登录前我可以在mail.yahoo.com上遇到相同的错误.我发现与这两个服务器的安全连接会触发ssl错误:
QT附带了一个名为securesocketclient的小型ssl演示程序.如果我使用这个小客户端连接到上述两个服务器的端口443,我可以产生相同的错误.我99%肯定这是QT的一个错误,因为我们在许多开发系统上产生了这个问题.它会影响linux,mac和windows QT.它影响QT 4.7.4一直到QT 4.8.4(没有尝试早期版本).使用openssl 0.9.8复制该错误.
有些人可能错误地声称使用带有预编译QT二进制文件的openssl 1.0.0修复了该错误.这是错误的,因为预编译的QT二进制文件是使用openssl 0.9.8头文件编译的.Openssl 0.9.8与openssl 1.0.0不是二进制兼容的.如果使用一个版本的openssl编译QT但使用另一个版本的openssl二进制文件,一些结构成员将被误解.我做了很多步骤和跟踪到QT和openssl源代码来得出这个结论.
由于hotmail和yahoo电子邮件是非常受欢迎的网站,我认为这个bug在QT的安全性方面是一个严重的错误.我已经将它报告给QT bug系统(https://bugreports.qt.io/browse/QTBUG-23625),我怀疑digia是否会根据我过去的经验得到它.
请随时分享您对如何解决此错误的看法.我知道如何调用ignoreSslErrors并假装没有问题.但这并不是打算如何使用openssl.
有关此问题的进一步调查的一些更新.
https://gfx8.hotmail.com的证书路径是:
根CA确实位于Windows证书存储区中,并在启动时正确加载.我想也许不知何故QT没有获得中间证书.我使用openssl命令行程序运行测试,如下所示:
openssl s_client -showcerts -connect gfx8.hotmail.com:443
输出在这里:
CONNECTED(000001AC)depth = 0 1.3.6.1.4.1.311.60.2.1.3 = US,1.3.6.1.4.1.311.60.2.1.2 = Washington,bu sinessCategory = Private Organization,serialNumber = 600413485,C = US,postalC ode = 98052,ST = Washington,L = Redmond,street = 1 Microsoft Way,O = Microso ft Corporation,OU = Windows Azure CDN,CN = gfx-ecn.hotmail.com …
我在php网页中有以下代码:
if (bInserted) echo "abc";
Run Code Online (Sandbox Code Playgroud)
我希望PHP给我一个语法错误,因为我忘了在变量名之前添加美元符号.但是,该页面不会产生任何错误.相反,它甚至回应了"abc"字符串.我真的不能理解这一点.