从问题:SQLite stack overflow when running a bulk INSERT OR REPLACE with 500 rows: why?,我需要增加Qt中某个线程的堆栈大小。
我希望这是跨平台的,但我一开始是试图让它在Windows上工作。
不幸的是,我没有尝试成功地增加有关线程的堆栈大小。(我通过添加代码来计算当前堆栈大小来度量堆栈大小(参见上面的链接),并注意到堆栈溢出崩溃发生在1MB,这并不反映我试图设置的堆栈大小。
我尝试了以下几点:
在Qt的项目.pro文件中:
QMAKE_CXXFLAGS += /F 32000000
QMAKE_LFLAGS += /STACK:32000000在源代码中,在线程上调用QThread::start()函数之前的行:
work_queue_manager_thread.setStackSize(static_cast<uint>(stackSize));(其中work_queue_manager_thread是QThread实例,stackSize是32000000)。
我分别尝试了上述两种尝试,我也一起尝试过。结果是相同的:对于所讨论的线程,堆栈大小保持在1MB。它没有反映我想要的堆栈大小。我无法为我的Qt线程设置堆栈大小。
我如何将Qt线程的堆栈大小实际设置为32000000 --以及在Windows和OS中工作的方式?
谢谢。
发布于 2014-03-23 04:16:56
结果问题工作中所示的QMAKE标志。
但是,使用Qt执行“所有清洁”和“重新构建”并不能获得新的标志。相反,必须删除整个Debug/Release文件夹,然后执行重新构建。那就成功了。
,但是这些标志只适用于Windows -当我确定OS标志时,我可能会更新这个答案,希望很快。
尽管如此,这些旗帜仍如所示。
https://stackoverflow.com/questions/22585073
复制相似问题