Linux下Qt的pro文件中添加QMAKE_LFLAGS += "/STACK:1600000,"编译报错
时间: 2024-04-02 22:36:44 浏览: 217
在Linux下,使用QMAKE_LFLAGS += "/STACK:1600000,"会导致编译报错,因为Linux下的编译器不支持这个选项。在Linux下,可以使用ulimit命令来控制进程的栈空间大小。可以在程序入口处使用ulimit命令来设置栈空间大小,例如:
```
#include <sys/resource.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
const rlim_t kStackSize = 16 * 1024 * 1024; // 16 MB
struct rlimit rl;
int result;
result = getrlimit(RLIMIT_STACK, &rl);
if (result == 0) {
if (rl.rlim_cur < kStackSize) {
rl.rlim_cur = kStackSize;
result = setrlimit(RLIMIT_STACK, &rl);
if (result != 0) {
fprintf(stderr, "setrlimit returned result = %d\n", result);
}
}
}
// your code goes here
return 0;
}
```
在上面的代码中,通过getrlimit函数获取当前进程的栈空间大小,并通过setrlimit函数修改栈空间大小。需要注意的是,修改栈空间大小需要具有足够的权限,否则会导致setrlimit函数调用失败。
阅读全文