2012-06-05 1 views
45

3 개의 파일을 읽는 데이 코드를 씁니다. TM은 정사각형 행렬의 크기이고, LER은 배열의 행 수이며 마지막 값입니다. (ler/2) * 2의 비 정방 행렬을 정의하십시오.`std :: ios_base :: Init :: Init() '에 대한 정의되지 않은 참조

그러면 ... 코드는 어떤 관계가있는 파일을 읽습니다. 모두 숫자이며 C [ler]에 할당됩니다.

Then ... C [ler]는 B [ler/2] [2]에 할당됩니다.

B [ler/2] [2]의 행당 좌표가 a와 b에 지정됩니다.

A와 B는 A가 [상표] [상표] 여기서, 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 통화 당 메시지가 표시 :

/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 
+0

컴파일러에서 오류가 발생합니까? "컴파일러에서 종료 상태 1을 지정했지만 프로그램에서 종료 상태가 1이 아니었다"고 말할 때 틀렸습니까? – Celeritas

+0

Celeritas, 네, 컴파일러를 실행 한 직후에 [gcc o f77] –

+0

[Unix에서 C++ 라이브러리를 찾을 수 없습니다] (http : // stackoverflow.co.kr/questions/10867164/cant-find-c-libraries-on-unix) –

답변

88

여러 가지 방법으로이 문제를 해결할 수 있습니다

  • 사용 g++gcc 대신에 : g++ -g -o MatSim MatSim.cpp
  • -lstdc++을 추가 gcc -g -o MatSim MatSim.cpp -lstdc++
  • <string>
에 의해 <string.h> 교체

이것은 링커 문제이며 컴파일러 문제는 아닙니다. 동일한 문제는 질문 iostream linker error에서 다룹니다. 어떤 일이 일어나는지 설명합니다.

+0

감사 라이너 ... 난 당신의 제안을 시도하고 내가 얻을 : _G ++ -g -o MatSim MatSim.cpp -lstdc 는/usr/빈/LD가 : collect2를 -lstdc 찾을 수 없습니다 : LD 반환 한 출구 –

+0

을 상태 _ 여분의 라이브러리 옵션을 사용한다면'-lstdC++ '가 아니라'-lstdC++'을 사용해야한다. 그러나 g ++를 사용한다면 그 라이브러리를 추가 할 필요가 없습니다. –

+0

감사합니다 Reinier !!!! 당신과 조나단 Leffler 내 코드를 enlightment 있고 지금 나는 정말로 앞으로 갈 수 있습니다 !! –

6

대부분의 링커 오류는 누락 된 라이브러리 때문에 발생합니다.

libstdC++. 6.dylib을 내 프로젝트 -> 타겟 -> 빌드 단계 -> 라이브러리와 이진 파일 링크에 추가했습니다. 아이폰 OS 8.3

건배를위한 엑스 코드 6.3.2에 나를 위해 그것을 해결

!

+0

고마워. 이걸 나눠 줘. 방금 내 문제를 해결했습니다. gtest-1.7.0 프레임 워크와 Xcode 버전 6.3.2를 사용하여 프로젝트에서 단일 테스트 대상을 컴파일하려고했습니다. –

+0

다행 이네요 :) –

+0

감사합니다. –