Amazon Linux에서 실행해야 하지만 최신 .dll이 필요합니다 g++
. g++
지침에 따라 소스에서 5.3.0을 컴파일했습니다.여기. 컴파일은 EC2 인스턴스에서 13시간 동안 실행되었으며 성공적으로 완료되었습니다.
그런 다음 작은 테스트 프로그램을 컴파일하고 실행할 수 있었습니다. 그런 다음 가서 컴파일하면더 큰 계획, 내가 받는 오류는 표준 라이브러리가 손상되었음을 나타내는 것 같습니다.
In file included from /usr/local/include/c++/5.3.0/ext/string_conversions.h:41:0,
from /usr/local/include/c++/5.3.0/bits/basic_string.h:5251,
from /usr/local/include/c++/5.3.0/string:52,
from /usr/local/include/c++/5.3.0/stdexcept:39,
from /usr/local/include/c++/5.3.0/array:38,
from /usr/local/include/c++/5.3.0/tuple:39,
from /usr/local/include/c++/5.3.0/mutex:38,
from /usr/local/include/c++/5.3.0/condition_variable:39,
from ClientStats.h:11,
from ClientStats.cpp:10:
/usr/local/include/c++/5.3.0/cstdlib:153:11: error: ‘::realloc’ has not been declared
using ::realloc;
^
작동하는 표준 라이브러리를 갖기 위해 컴파일하거나 업그레이드해야 하는 다른 것이 있습니까?
답변1
이 질문을 받은 지 4년이 지났다는 것을 알지만 오늘 우연히 만났습니다. 최신 C++ 기능에 액세스하기 위해 오래된 Macbook Pro의 소스에서 gcc 11.2.0을 컴파일했습니다. 이와 같은 특정 헤더를 포함하면 <algorithm>
OP의 오류처럼 보이는 이상한 오류가 발생합니다.
-I/usr/include
내 문제는 시스템에 내장된 이전 C++ 표준 헤더의 헤더를 포함하는 C++ 플래그에 포함 경로를 추가했다는 것입니다 . 이것은 내 새 컴파일러와 충돌합니다. 나는 이 플래그를 제거하여 이 문제를 해결했습니다. 제 경우에는 필요하지 않았습니다.