2017-02-25 3 views
0

최근 변수를 문자열에 저장하려고했습니다. 나는 꽤 많은 온라인 검색을했고, 내가 찾은 답의 대부분은 std :: string의 사용을 권장한다. 그래서 다음과 같습니다 테스트 프로그램을 작성했습니다 :프로 시저 엔트리 포인트 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE1을 동적 링크 라이브러리에 찾을 수 없습니다.

나는이 프로그램을 실행하면 프로그램은, 그러나,이 오류 잘 revieve 때문에 컴파일
#include <iostream> 
#include <string> 
using namespace std; 

int main(){ 
    string s; 
    getline(cin,s); 
    cout << s; 
} 

:`

Error Message 내가 프로그래밍에 큰 초보자 오전 무슨 일이 벌어지고 있는지 혼란 스러울 때가 있습니다. 아무도 나에게 여기에서 일어나는 일에 대한 통찰력을 조금 주어도 될까요? 감사!

또한 GCC 컴파일러를 사용하고 있습니다.

편집 : 문제를 성공적으로 해결했습니다. GCC는 웹 튜토리얼을 사용하여 다시 설치했습니다. 내가 뭘 잘못했는지는 모르지만 지금은 고쳐져있다.

+1

코드를 어떻게 컴파일합니까? –

+1

gcc 대신 g ++를 사용하십시오. 두 번째는 표준 라이브러리를 자동으로 연결합니다. –

+1

누락 된 기호 (오타가 수정 된 후)는 기본 생성자로 더 잘 알려져있는'std :: __ cxx11 :: basic_string , std :: allocator :: basic_string()'으로 디맹글을합니다. 'std :: string'에 대해서. 이것은 설치 문제 일 수 있습니다. – zwol

답변

1

GCC를 사용하여 C++를 컴파일하는 경우 gcc이 아닌 g++ 드라이버 프로그램을 사용해야합니다. 후자는 번역 단위를 컴파일하지만 실행 파일을 올바르게 연결하지 않습니다.

+0

컴파일 코드는 "g ++ -std = C++ 14 test.cpp -o test.exe"이지만 여전히 동일한 오류가 발생합니다. – McGrizz

+0

@Zachary : 아, GCC의 최근 ABI 변경 사항에 관한 jww의 의견을 참조하십시오. –