2015-11-12 2 views
1

Я пытаюсь скомпилировать следующий код:Emscripten: algorithm.h файл не найден

#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 был частью стандартной библиотеки.

Edit:

Я изменил имя файла из test.c в test.cpp, я обновил имена заголовков <cstdio> и <algorithms>, и я также установил -std=c++11 и он работает в настоящее время.

+1

У вас есть тег 'C++', но это выглядит подозрительно, как C – JackVanier

+0

Почему downvote? Позаботьтесь об этом? –

ответ

3

Если это C++ использовать

#include <cstdio> 

вместо stdio.h и

#include <algorithm> 

вместо

2

В стандартной C++ нет <algorithm.h> - есть только <algorithm>

Также в C++ заголовок stdio доступен с <cstdio> и <stdio.h> для обеспечения совместимости.

Кроме того, поскольку вы в том числе алгоритм расширение файла должно быть .cc или .cpp и не .c или иначе EMCC/ССАГПЗ будет рассматривать его в качестве источника C вместо одного в C++.