我已经为windows下的64位架构编译了Qt,除了QtScript之外,其他的都运行得很好。以下简单代码与32位Qt for Windows完美配合,如果使用64位Qt编译,则会崩溃。也许这是我代码中的一个错误?或者Qt与64位不兼容?还是别的什么?欢迎提出任何意见。
#include <QtCore/QCoreApplication>
#include <QScriptEngine>
int main(int argc, char *argv[])
{
QCoreApplication app( argc, argv);
QScriptEngine oEngine;
oEngine.evaluate( "function foo(){var a=[[0]]; a[0][0];}" );
for(;;)
{
oEngine.evaluate( "foo" ).call();
}
}发布于 2010-01-28 00:42:25
崩溃发生在JavaScriptCore内部,它是WebKit项目(http://webkit.org/projects/javascript/index.html)的第三方组件:
Visual Studio报告崩溃发生在c:\Qt\4.6.1\src\3rdparty\javascriptcore\JavaScriptCore\runtime\JSObject.h的641行,并在调用JSCell::getOwnPropertySlot (JSCell.cpp:126)时停止。堆栈跟踪为:
QtScriptd4.dll!QTJSC::JSValue::get
QtScriptd4.dll!QTJSC::JSValue::get
QtScriptd4.dll!QTJSC::Interpreter::privateExecute
QtScriptd4.dll!QTJSC::Interpreter::execute
QtScriptd4.dll!QTJSC::JSFunction::call
QtScriptd4.dll!QTJSC::call
QtScriptd4.dll!QScriptValue::call
test.exe!main
当使用Visual C++编译器在Windows上构建WebKit组件时,有很多关于可能的64位问题的警告,所以我怀疑它不是一个支持的配置,或者还没有调试过。
我已经更新了QT错误报告QTBUG-7344。
https://stackoverflow.com/questions/2104561
复制相似问题