0

부스트 라이브러리로 Code :: Blocks (MinGW를 사용하여 Windows에서 실행)를 구성하려고합니다. 라이브러리를 만들고 C : \ Program Files \ boost_1_47_0에 모든 것을 설치했습니다.Code :: blocks에서 Boost를 사용하는 데 문제가 있습니다.

코드 :: Blocks 자체에서 두 개의 기본 필드 인 'base'와 'include'를 사용하는 전역 변수를 만들었습니다.이 변수는 모두 부스트 설치 경로를 가리 킵니다.

또한 빌드 옵션에서 링커 설정을 수정하고 '$ (# boost.lib)'링크 라이브러리를 추가했습니다. boost를 테스트하기 위해 include를 실제로 사용하지 않고 #include를 프로젝트에 넣었습니다. 그러나 프로젝트는 빌드하지 않습니다 (물론 #include를 넣기 전에 빌드 한 것입니다). "ld.exe"에서 "-l-lstdC++"을 찾을 수 없다는 빌드 오류가 발생합니다. 아무도 내가 뭘 잘못하고 있는지 알아?

건배.

+0

stdC++ (즉 libstdC++)는 표준 C++ 라이브러리이며 boost와는 아무런 관련이 없습니다. 행동을 유발하는 몇 가지 코드 예제를 보여줄 수 있습니까? 시스템에 표준 라이브러리가 설치되어 있습니까? – celavek

+0

그리고이 http://wiki.codeblocks.org/index.php?title=BoostWindowsQuickRef를 이미 살펴 보았습니다. – celavek

+0

그래, 나는 이미 그것을 보았다. #include 이 주석 처리 된 경우에도 기괴하게 코드가 작성되지 않습니다. 이는 이전에 빌드 될 것이라고 확신했기 때문에 이상합니다. 즉, 작업을 수행하는 동안 뭔가를해야한다는 것을 의미합니다. 어떤 코드가 동작을 유발하는지 모르겠습니다. 프로젝트 설정과 관련이있는 것 같습니다. 이것은 링커 설정이나 전역 변수와 관련이있을 수 있습니까? – Aaron

답변

0

당신이 말하는 오류는 -l-lstdc++을 찾을 수 없습니다. 링크 라이브러리 설정에 오류가 있습니다.

간단한 C++ 명령 줄 및 유형에 대한 (비 부스트) 응용 프로그램을 컴파일하려고하면 :

g++ main.cpp -o main.o -l-lstdc++ 

을 당신은 당신이 코드 :: 블록에서 보는 것과 같은 오류가 발생합니다 :

를 당신이 바로 -l 밖으로 stdc++해야 할 때 라이브러리 이름이 -lstdc++으로 지정이기 때문에
/usr/bin/ld: cannot find -l-lstdc++ 

이 입니다. 합니다 (-l 다음 단어가 라이브러리의 이름입니다 컴파일러를 알려주는 플래그입니다.)

은 추가 -l 대한 링크 라이브러리 설정을 확인하거나 부스트 라이브러리의 실제 경로와 $(#boost.lib)를 교체하려고합니다.

관련 문제