std::ios_base:에 대한 정의되지 않은 참조:초기화::Init()'
3개의 파일을 읽기 위해 이 코드를 작성합니다.TM은 정사각형 행렬의 크기이고, LER는 배열 행의 수이며, 마지막 값에서 정사각형 행렬이 아닌 (ler/2)*2를 정의합니다.
그런 다음 코드가 일부 관계가 있는 파일을 읽습니다. 모두 숫자이며 C[ler]에 할당됩니다.
그러면...C[ler]는 B[ler/2][2]에 할당됩니다.
B[ler/2][2]의 각 행의 좌표는 a와 b에 할당됩니다.
a와 b는 행렬 A[tm][tm]의 행과 컬럼으로 1을 추가합니다.
코드가 크래시 되어, 에러가 표시되지 않습니다.
컴파일을 하려고 하면 컴파일러 gcc -g -o MatSim MatSim.cpp에서 다음과 같은 메시지가 나타납니다.
/usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::Init()'
/usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status
또한 컴파일러 f77 -o MatSim MatSim.cpp에서 다음과 같은 메시지가 나타납니다.
/tmp/cc6ewlkf.o: In function `__static_initialization_and_destruction_0(int, int)':
MatSim.cpp:(.text+0x17ad4a): undefined reference to `std::ios_base::Init::Init()'
MatSim.cpp:(.text+0x17ad4f): undefined reference to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status
솔루션
주요 문제는 라이브러리의 문제였습니다.다음 명령을 사용하여 코드를 컴파일합니다.
g++ -g -o MatSim MatSim.cpp -lstdc
아직도 안 돼?라이브러리 설치:
sudo apt-get install g++-multilib
이 문제는 여러 가지 방법으로 해결할 수 있습니다.
- 사용하다
g++
대신해서gcc
:g++ -g -o MatSim MatSim.cpp
- 더하다
-lstdc++
:gcc -g -o MatSim MatSim.cpp -lstdc++
- 교체하다
<string.h>
타고<string>
이는 링커 문제이지 컴파일러 문제가 아니다.같은 문제가 iostream 링커 에러 질문에서도 설명되고 있습니다.
이러한 링커 오류의 대부분은 라이브러리가 없기 때문에 발생합니다.
프로젝트 -> 타겟 -> 빌드 단계 -> 라이브러리와의 링크 바이너리에 libstdc+.6.dylib를 추가했습니다.
iOS 8.3용 Xcode 6.3.2로 해결했습니다.
건배!
g++는 gcc -xc++ -lstdc++ -shared-libgcc와 동일합니다.
sizeof() 메서드 사용 중 유사한 오류가 발생하였습니다.gcc에 g++ 이상의 태그를 사용함으로써 코드가 컴파일 되었습니다.
언급URL : https://stackoverflow.com/questions/10906275/undefined-reference-to-stdios-baseinitinit
'programing' 카테고리의 다른 글
ThreadLocal 변수를 언제 어떻게 사용해야 합니까? (0) | 2022.07.08 |
---|---|
링크 리스트에서 루프를 검출하려면 어떻게 해야 합니다. (0) | 2022.07.08 |
vue.js 및 Auth0을 사용하여 사용자가 이미 인증되어 있는 경우 로그인 페이지를 건너뛰려면 어떻게 해야 합니까? (0) | 2022.07.08 |
Vue에서의 키다운 및 키업 (0) | 2022.07.08 |
Vuex getters 오디오 업데이트 실시간current Time 상태 (0) | 2022.07.07 |