2012-04-15 56 views
0

我試圖靜態鏈接我的應用程序與Qt。 這是我做過什麼:靜態構建Qt後,我無法在Windows 7上編譯/鏈接應用程序(GNU分配器錯誤)

  1. downlaoded了Qt庫4.8.1
  2. donwloaded MinGW的
  3. 配置的Qt用:

    配置-release -platform的win32-G ++ -nomake例子-nomake demos -no-rtti -no-qt3support -no-scripttools -no-openssl -no-opengl -no-webkit -no-phonon -no-style-motif -no-style-cde -no-style-cleanlooks - no-style-plastique -no-sql-sqlite

  4. 運行win32-make

  5. 在Qt Creator中設置我的項目(也從SDK 4.8開始)發佈 並使用靜態庫。

    C:/MinGW/bin/mingw32-make.exe -f Makefile.Release 
    mingw32-make.exe[1]: Entering directory `C:/PhotoChop-build-desktop-Qt_4_8_0_for_Desktop_-_MSVC2010__Qt_SDK__Release' 
    g++ -c -Os -momit-leaf-frame-pointer -fno-exceptions -Wall -fno-rtti -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\..\..\Qt\4.8.1\include\QtCore" -I"..\..\..\Qt\4.8.1\include\QtGui" -I"..\..\..\Qt\4.8.1\include" -I"..\..\..\Qt\4.8.1\include\ActiveQt" -I"release" -I"." -I"..\PhotoChop" -I"." -I"..\..\..\Qt\4.8.1\mkspecs\win32-g++" -o release\mainwindow.o ..\PhotoChop\mainwindow.cpp 
    In file included from c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/mingw32/bits/c++allocator.h:34:0, 
           from c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/bits/allocator.h:48, 
           from c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/string:43, 
           from ..\..\..\Qt\4.8.1\include/QtCore/../../src/corelib/tools/qstring.h:54, 
           from ..\..\..\Qt\4.8.1\include/QtCore/qstring.h:1, 
           from ..\..\..\Qt\4.8.1\include/QtCore/../../src/corelib/kernel/qobject.h:48, 
           from ..\..\..\Qt\4.8.1\include/QtCore/qobject.h:1, 
           from ..\..\..\Qt\4.8.1\include/QtGui/../../src/gui/kernel/qwidget.h:46, 
           from ..\..\..\Qt\4.8.1\include/QtGui/qwidget.h:1, 
           from ..\..\..\Qt\4.8.1\include\QtGui/../../src/gui/widgets/qmainwindow.h:45, 
           from ..\..\..\Qt\4.8.1\include\QtGui/qmainwindow.h:1, 
           from ..\..\..\Qt\4.8.1\include\QtGui/QMainWindow:1, 
           from ..\PhotoChop\/mainwindow.h:4, 
           from ..\PhotoChop\mainwindow.cpp:1: 
    c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/ext/new_allocator.h: In instantiation of '__gnu_cxx::new_allocator<const PCOperator::OperatorInfo* const>': 
    c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/bits/allocator.h:92:11: instantiated from 'std::allocator<const PCOperator::OperatorInfo* const>' 
    c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/bits/stl_vector.h:73:60: instantiated from 'std::_Vector_base<const PCOperator::OperatorInfo* const, std::allocator<const PCOperator::OperatorInfo* const> >' 
    c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/bits/stl_vector.h:180:11: instantiated from 'std::vector<const PCOperator::OperatorInfo* const>' 
    ..\PhotoChop\mainwindow.cpp:55:35: instantiated from here 
    c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/ext/new_allocator.h:82:7: error: 'const _Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::const_reference) const [with _Tp = const PCOperator::OperatorInfo* const, __gnu_cxx::new_allocator<_Tp>::const_pointer = const PCOperator::OperatorInfo* const*, __gnu_cxx::new_allocator<_Tp>::const_reference = const PCOperator::OperatorInfo* const&]' cannot be overloaded 
    c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/ext/new_allocator.h:79:7: error: with '_Tp* __gnu_cxx::new_allocator<_Tp>::address(__gnu_cxx::new_allocator<_Tp>::reference) const [with _Tp = const PCOperator::OperatorInfo* const, __gnu_cxx::new_allocator<_Tp>::pointer = const PCOperator::OperatorInfo* const*, __gnu_cxx::new_allocator<_Tp>::reference = const PCOperator::OperatorInfo* const&]' 
    mingw32-make.exe[1]: Leaving directory `C:/PhotoChop-build-desktop-Qt_4_8_0_for_Desktop_-_MSVC2010__Qt_SDK__Release' 
    mingw32-make.exe[1]: *** [release/mainwindow.o] Error 1 
    mingw32-make.exe: *** [release] Error 2 
    01:24:28: The process "C:\MinGW\bin\mingw32-make.exe" exited with code 2. 
    Error while building project PhotoChop (target: Desktop) 
    When executing build step 'Make' 
    

加CONFIGURE + =靜態到.pro文件

而且我得到這個錯誤(?顯然東西是不使用std :: vector的<>喜歡的東西我的代碼)

任何想法?

+2

確實有一些關於來自PhotoChop \ mainwindow.cpp:55:35的const的問題。這將是關於你使用「std :: vector 」的東西。向我們展示代碼,否則幾乎不可能提供幫助。 – muenalan 2012-04-15 09:11:06

回答

0

基本上有一些問題與MinGW的編譯器VS MSVC的一個儘可能

std::vector<const PCOperator::OperatorInfo* const>

我重新配置QT與-platform Win32的msvc2010和執行nmake代替的mingw32,使和事編譯現在就好了。

0

我沒有在配置參數中看到「-static」選項?

+0

這應該是一個評論,而不是一個答案... – alestanis 2012-10-20 09:57:03

相關問題