我看了下makefile,原来前几个好用是因为没有装VC时编译了,当时的makefile留下了。删掉原来的makefile后重新弄,又出现原来的问题。
这个是新的makefile
CC = gcc
CXX = g++
DEFINES = -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
CFLAGS = -g -Wall $(DEFINES)
CXXFLAGS = -g -frtti -fexceptions -mthreads -Wall $(DEFINES)
INCPATH = -I"..\..\..\include\QtCore" -I"..\..\..\include\QtGui" -I"..\..\..\include" -I"..\..\..\include\ActiveQt" -I"tmp\moc\debug_shared" -I"d:\Programming\Microsoft Visual Studio6\VC98\atl\include" -I"d:\Programming\Microsoft Visual Studio6\VC98\mfc\include" -I"d:\Programming\Microsoft Visual Studio6\VC98\include" -I"%MINGW%\include" -I"..\..\..\mkspecs\win32-g++"
LINK = g++
LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows
LIBS = -L"d:\Programming\Qt\2010.02.1\qt\lib" -L"d:\Programming\Microsoft Visual Studio6\VC98\mfc\lib" -L"d:\Programming\Microsoft Visual Studio6\VC98\lib" -L"d:\Programming\Qt\2010.02.1\qt\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
QMAKE = d:\programming\qt\2010.02.1\qt\bin\qmake.exe
IDC = d:\Programming\Qt\2010.02.1\qt\bin\idc.exe
这里它可以发现编译器选择是g++和gcc,编译用的是mingw,但是库和头文件用的VC的。
基本上可以得出结论,应该是Qt Creatro 和 VC6.0公用了lib include两个环境变量,不知道能不能设置开发环境使用不同的环境变量。