2012-08-16 4 views
0

Qt Creator로 작은 C++ 프로그램 (GUI 포함)을 작성하고 MinGW로 컴파일하고 있습니다. 내가 오류를 클릭하면Qt Creator 릴리스 모드가 std :: out_of_range에 대한 참조를 정의하지 않았습니다.

undefined reference to 'std::out_of_range::~out_of_range()'   thread.cpp 

나는 또한 얻을 :

File not found: thread.cpp 

I를 내가 디버그 모드에서 프로젝트를 컴파일하지만 최대한 빨리 모드를 해제하는 이동 내가 컴파일러 오류를 얻을 때 모든 것이 잘 작동 내 부스트 설치를 살펴본 결과 thread.cpp가 발견되었고 내 프로젝트의 포함 경로에 있어야합니다.

아이디어가 있으십니까?

편집 :

#------------------------------------------------- 
# 
# Project created by QtCreator 2012-08-10T12:09:39 
# 
#------------------------------------------------- 

QT  += core gui 

TARGET = GeneDropWin 
TEMPLATE = app 

SOURCES += main.cpp \ 
    genedrop.cpp \ 
    mainbody.cpp \ 
    biofunctions.cpp \ 
    fileio.cpp \ 
    settings.cpp 

HEADERS += genedrop.h \ 
    geneclasses.h \ 
    paramclass.h \ 
    mainbody.h \ 
    biofunctions.h \ 
    fileio.h \ 
    geneclasses.h \ 
    settings.h 

FORMS += genedrop.ui \ 
    settings.ui 

#Stuff I've added 
INCLUDEPATH += "C:\\Program Files\\boost_1_50_0" 
LIBS += -L"C:\\Program Files\\boost_1_50_0\\stage\\lib" -lboost_thread-mgw46-mt-1_50 -lboost_system-mgw46-mt-1_50 -lboost_date_time-mgw46-mt-1_50 -lboost_chrono-mgw46-mt-1_50 
CONFIG += static \ 
    release 

RESOURCES += \ 
    NIABLogo.qrc 
+0

.pro 파일에 문제가있을 수 있습니다. 게시 할 수 있습니까? –

+0

죄송합니다. .pro 파일에서 오류를 찾을 수 없습니다. –

+0

고마워서 고마워. :) –

답변

0

좋아, 문제가 해결 그러나 아마 완전히 이해되지 : 여기 내 .PRO 파일입니다. MSVC로 컴파일러를 전환하고 링커 옵션 (예 : -lboost_thread-mgw46-mt-1_50 -> -llibboost_thread-vc100-mt-1_50)의 구문을 변경하여 문제를 해결했습니다. 나는이 문제가되었을 수도 있습니다 생각하는지에 관해서는 앞으로 내 추론을 넣어하지만 잘못이 있다면 더 나은 대답을 부탁드립니다 :

  1. 내가 설치를 통해 볼 때 내가는 MinGW로 부스트 라이브러리를 구축했다고 생각하지만 내가 발견 msvc를 언급하는 폴더의 수 (예를 들어 ... boost \ bin.v2 \ libs \ date_time \ build_msvc-10.0). MSVC로 빌드 한 것을 제안했다.
  2. 링커 오류가 thread.cpp와 관련된 파일을 찾을 수 없다고 주장했습니다.
  3. 빌드 디렉토리의 스레드 폴더를 보면 모든 .obj 및 .lib 파일의 경로에 msvc-10.0 폴더가 있습니다.
  4. 따라서 MinGW 컴파일러는 존재하지 않는 MinGW 폴더 내에서 부스트 개체를 찾고 있었기 때문에 실패했습니다. 디버그 모드에서 작동한다는 사실은 덜 제한적인 파일 검색과 관련이 있다고 생각합니다.
관련 문제