我正在尝试编译以下代码:
#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
它现在有效。
答案 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 ++代码。