Emscripten:找不到algorithm.h文件

时间:2015-11-12 00:15:41

标签: c++ algorithm std emscripten

我正在尝试编译以下代码:

#include<stdio.h>
#include <algorithm.h>

int main() {
  printf("hello, world!\n");
  return 0;
}

但是当我运行emcc test.c -o test.html时,我收到以下错误:

fatal error: 'algorithm.h' file not found

当我删除导入algorithm.h的行时,代码会完美编译。

为什么会这样?我的印象是algorithm.h是标准库的一部分。

编辑:

我将文件名从test.c更改为test.cpp,我将标题名称更新为<cstdio><algorithms>,并且我还设置了-std=c++11它现在有效。

2 个答案:

答案 0 :(得分:3)

如果这是C ++使用

#include <cstdio>

取代stdio.h

#include <algorithm>

代替

答案 1 :(得分:2)

标准 C ++中没有<algorithm.h> - 只有<algorithm>

同样在C ++中,可以从<cstdio><stdio.h>访问stdio标头以实现兼容性。

此外,由于您要包含算法,因此文件扩展名应为.cc.cpp而不是.c,否则emcc / gcc会将其视为C源代码而不是C ++代码。