2013-09-01 4 views
10

우분투에서 Qt 프로젝트를 만들었습니다. 모든 것이 원활하게 진행되었습니다. 그러나 Windows에서도 배포해야합니다. Boost 라이브러리를 사용합니다 (큰 문제).Windows에서 부스트를 사용하도록 Qt Creator를 구성하는 방법

나는 해결책을 찾기 위해 몇 시간을 조사했지만 운이 없었습니다. Boost 라이브러리를 설치하고 mingw와 링크하려고했습니다. 나는 뭔가를 놓친 것 같아. 여기에 내가했던과 최신 버전 다운로드 무엇인가.

1) 실행을 \ 다음 부트 스트랩
2) \ B2 --prefix = C :. \ 부스트는 슬프게도 제대로 설치하지 않은

를 설치합니다. 나는 단지 2 폴더 (빈과 공유)를 가지고 있지만 헤더는 없다.

그러나 여기 (http://nuwen.net/) 번들 (Mingw + Boost 및 기타 라이브러리)을 발견했습니다. 이것은 내가 필요한 모든 것을 가지고있다.

이제 정의되지 않은 참조가 많아서 문제가 .pro 파일이라고 생각합니다. 다음은 시도한 모든 것 (. 일부 댓글) .pro 파일입니다. http://pastebin.com/pBFMTAd8

귀하의 도움에 감사드립니다!

+0

몇 가지 오류 메시지가 좋을 것이다. 그리고 부스트 라이브러리가 C :/MinGW/lib에 있는지 확인할 수 있습니까? – Greenflow

+0

나의 나쁜, 여기 몇 가지 오류가 있습니다 : http://postimg.org/image/h4vvo8mgx/9040bd30/; 여기 C : \ MinGW \ lib 경로가 있습니다 : http://postimg.org/image/3lw19jdt9/ad5481f9/ – Athan

+0

.a boost 라이브러리 만 보았습니다. .pro 파일의 어떤 것도 정적 빌드를 수행하고 있음을 나타냅니다. 이 폴더에 boost .dll 파일도 있습니까? – Greenflow

답변

10

직접 문제를 해결했습니다. 그리고 내가 어떻게 그랬는가. 우선, Qt에서 사용하는 것과 동일한 컴파일러로 부스트 라이브러리를 컴파일해야합니다.
msvc를 사용하고 있다면 Boost 녀석들이 당신에게 호의적이고 라이브러리를 컴파일 해 주었기 때문에 운이 좋았습니다. 여기에서 다운로드 할 수 있습니다 : http://sourceforge.net/projects/boost/files/boost-binaries/. 당신은 (Qt를에 번들로 제공 않음)와 Mingw를 사용하는 경우
, 당신은이 작업을 수행 할 수 있습니다

  • 추가와 Mingw 컴파일러 윈도우 PATH 변수에 :
    ~하는 패널을 제어하고 시스템을 검색으로 이동;
    ~ mingw의 경로 (예 : C : \ Qt \ Tools \ mingw \ bin)를 ';'을 추가하여 PATH 변수에 추가하십시오. 당신의 경로 (예 : "; C : \ Qt를 \ 도구 \와 Mingw 빈 \")
  • 컴파일 부스트 라이브러리 :
    ~ 압축 해제 부스트 아카이브
    ~ 다음, 압축을 푼 부스트 폴더에 이동 명령 줄 창을 엽니 다
    ~ mingw 도구 모음으로 설치 프로그램을 빌드했습니다.. \ build --toolset = mingw
    ~ 이렇게하면 bin.ntx86 폴더 또는 유사한 폴더에 2 개의 파일이 생성됩니다. 압축을 푼 부스트 폴더에있는 bjam과 b2 파일을 복사하십시오.
    ~ 이제 부스트 폴더로 이동하여 빌드를 시작하십시오. \ b2 --toolset = mingw - 빌드 유형 = 완료 단계 (이클립스와 함께 설치하는 좋은 자습서가 있습니다 : http://theseekersquill.wordpress.com/2010/08/24/howto-boost-mingw/)
    참고 : 몇 시간이면 영화를 보거나 그 사이에 무엇을하고 싶을 지 모릅니다. 그러나 빌드 명령에 다른 인수를 추가하여 작업 속도를 조금 높일 수 있습니다. -j N, 여기서 N은 프로세서의 코어 수입니다.
  • 빌드가 완료되면 Qt에서 라이브러리를 연결할 수 있습니다. 이렇게하려면 .pro 파일을 수정해야합니다. 먼저 Qt에게 헤더가있는 위치를 알려주고 추가해야합니다.
    INCLUDEPATH + = path_to_boost_folder. : INCLUDEPATH + = C :/boost_1_54_0
    ~ 당신은 예를 들어 시스템과 파일 시스템에 대한 링크를 필요로 라이브러리를 사용하는 경우 또한 별도로 연결해야 :
    LIBS + = "C :/boost_1_54_0/무대/lib 디렉토리/libboost_filesystem -mgw48-1_54.a "
    LIBS + ="C :
  • "/boost_1_54_0/stage/lib/libboost_system-mgw48-1_54.a .PRO 파일을 수정 한 후에는 실행 qmake를 한 후 다시 빌드합니다.

호프도 유용합니다.

업데이트 : 폴더 계층 구조가 변경되었습니다. 라이브러리를 작성하려면 각 버전과 관련된 설명서 (Boost.Build's documentation)를 읽어야합니다. 루트 폴더에서 라이브러리를 구축하는 것은 (Building Boost 1.52 with MinGW) 쉽습니다 :

C:\boost_1_60_0> bootstrap.bat mingw 
C:\boost_1_60_0> .\b2 --toolset=gcc -j N --build-type=complete 
0

빌드 부스트는 헤더를 넣지 않으며 헤더는 개발자가 새로운 코드를 작성할 때 사용합니다. 설치된 dir은 배포 용 바이너리입니다.

는 런타임에 사용하는 것이 (시간을 컴파일되지 않음), 라이브러리를 설치합니다

http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html#prepare-to-use-a-boost-library-binary를 참조하십시오. 이 bin 폴더를 경로에 추가하기 때문에 boost를 사용하여 응용 프로그램 빌드를 실행하면 "xxx.dll을 찾을 수 없습니다"라는 메시지가 표시되지 않습니다.

관련 문제