`std :: ios_base :: Init :: Init () '에 대한 정의되지 않은 참조
이 코드를 작성하여 3 개의 파일을 읽습니다. TM은 정사각형 행렬의 크기, LER는 배열의 행 수이며 마지막 값에서 (ler / 2) * 2의 비정 방 행렬을 정의합니다.
그런 다음 코드는 일부 관계가있는 파일을 읽고 모두 숫자이며 C [ler]에 할당됩니다.
그러면 ... C [ler]가 B [ler / 2] [2]에 할당됩니다.
B [ler / 2] [2]의 행당 좌표는 a와 b에 할당됩니다.
a와 b는 1을 더할 행렬 A [tm] [tm]의 행과 열입니다.
내 코드가 충돌하고 오류가 무엇인지 알 수 없습니다.
컴파일하려고하면 컴파일러 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 링커 오류 라는 질문에서 다룹 니다. 무슨 일이 일어나고 있는지 설명합니다.
이러한 링커 오류의 대부분은 누락 된 라이브러리로 인해 발생합니다.
Project- > Targets-> Build Phases-> Link Binary With Libraries에 libstdc ++. 6.dylib 를 추가했습니다 .
iOS 8.3 용 Xcode 6.3.2에서 해결되었습니다.
건배!
참고 URL : https://stackoverflow.com/questions/10906275/undefined-reference-to-stdios-baseinitinit
'Program Tip' 카테고리의 다른 글
프로그래밍 방식으로 ListView에서 항목을 선택하는 방법은 무엇입니까? (0) | 2020.11.30 |
---|---|
파이썬의 deques는 어떻게 구현되며 언제 목록보다 더 나쁩니 까? (0) | 2020.11.30 |
UIPickerView의 기본값을 설정하는 방법 (0) | 2020.11.30 |
WiX를 사용하여 바탕 화면 바로 가기 만들기 (0) | 2020.11.30 |
TypeScript : 인터페이스 대 클래스 대 모듈 대 프로그램 대 함수 (0) | 2020.11.30 |