ICC 11.1对ia64上的PTHREADS有奇怪的行为

时间:2010-06-30 10:36:19

标签: c++ pthreads icc

我正在使用ICC 11.1开发ia64机器。以下程序很好地编译:

#include <pthread.h>
#include <iostream>
using namespace std;
int main()
{
    cout << PTHREAD_STACK_MIN << '\n';
    return 0;
}

当我用icc test.cpp -o test

编译它时

但是当我将文件的内容更改为:

#include <pthread.h>
#include <stdio.h>
int main()
{
    printf("%d\n", PTHREAD_STACK_MIN);
    return 0;
}

我突然得到了:

  

icc -c test.cpp -o test.o test.cpp(6):   错误:标识符“PTHREAD_STACK_MIN”   未定义           printf(“%d \ n”,PTHREAD_STACK_MIN);                          ^

     

编译为test.cpp中止(代码   2)

任何人都可以向我解释原因吗?或者更重要的是:我如何解决这个问题,以便第二个代码示例也可以编译?

1 个答案:

答案 0 :(得分:0)

嗯,这很简单:你忘了在<limits.h>声明PTHREAD_STACK_MIN的地方<iostream>。{/ p>}。

从错误中可以得出结论,<limits.h>内部也包含{{1}}为什么在C ++模式下不会发生错误。