2010-11-25 2 views
2

항상 프로그래머에서 그리는 제목을 선택하십시오. 어쨌든Qt4 정적 컴파일 및 홀수 오류가 발생하기 전에 발생합니다.

내가 리눅스를 사용하고 있는데 내가 ./configure를 -static -nomake 데모를 사용하여 qt4.7.1 libs와 컴파일은 예 -prefix/지역/QT/qtstatic

빌드 도구를 -nomake 설치 -nomake 모두 괜찮 았고, 나는 그것으로 만들 수 있도록 Qt 창조자에 그것을 설정했습니다. 모든 응용 프로그램을 올바르게 작성하면 응용 프로그램을 실행할 때 오류가 발생합니다.

는 QWidget은 :이 정적 객체가 클래스 먼저 호출 할 수의 QApplication을 필요로 (QPaintDevice)를 사용하려고 정적 객체이기 때문에 모든 의미 이해

중단됨 QPaintDevice 전에의 QApplication을 구성해야 실제 응용 프로그램 전에 처리가 분명히 실패 할 것입니다. 내 main() 뒤에 오는 첫 번째 줄은 QAplication이지만, 차이는 없습니다. 내 .pro에는 CONFIGURE + = static이 포함되어 있고 정의했습니다. 메인 프로그램의 정적 인 Qt4는 나를 좋아하지 않습니다.

정적 오브젝트가 모두 이렇게 미친 듯하지 않도록 수정하는 방법은 무엇입니까? microbrowse이 당신의 작업 위젯 만 무엇이든의 이름을 제외하고, 주요 거의 Qt는 창조주에 의해 만들어진 모든 QT 애플 리케이션을위한 동일

#include <QtGui/QApplication> 
#include "microbrowse.h" 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    microbrowse w; 
    w.show(); 
    return a.exec(); 
} 

는 기본이다,하지만 그건 아마 중요하지 않아. 위젯 마이크로 브로우는 전체 프로그램입니다.이 모든 것이 QApplication을 작성하고 차원 마이크로 브로우를 작성하는 것입니다.

+0

주()를 게시하면 도움이 될 수 있습니다. – Live

+0

스택에 microbrowse를 선언한다고 생각하지 않습니까? 'microbrowse * w = new microbrowse(); w-> show();' – Evan

+0

@Evan : 코드가 스택이 아니라 힙에 마이크로 브라우저를 생성합니다. 그러나 여기서는 중요하지 않습니다. 동일한 생성자가 동시에 호출됩니다. 중요한 것은 microbrowse가 고정적이지 않다는 것입니다. OP의 코드는 나에게 잘 보입니다. 나는 문제가 마이크로 브라우저의 _implementation_에 있다고 생각한다. – TonyK

답변

0

클래스 microbrowse에는 정적으로 연결할 수없는 개체가 포함되어 있다고 생각합니다. 또한 Qt 빌드를 확인하십시오. 구성하는 동안 ./configure -relase 또는 -debug을 추가해야합니다.

관련 문제