• 5775阅读
  • 7回复

关于静态编译 [复制链接]

上一主题 下一主题
离线jiangll
 
只看楼主 倒序阅读 楼主  发表于: 2009-10-16
静态编译程序,似乎没有成功,希望大家能帮助我找到问题所在,谢谢了。
在没有qt和MinGw的window机器上跑编译生成的.exe,提示QtCore4.DLL找不到。

具体的项目配置文件(.pro)配置如下:

HEADERS += window.h
SOURCES += window.cpp \
    main.cpp
RESOURCES += systray.qrc
CONFIG +=static qt release

编译时的打印信息:
make -f Makefile.Release
make[1]: Entering directory `C:/systray'
g++ -c -O2 -frtti -fno-exceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"d:\Qt\4.5.2\include\QtCore" -I"d:\Qt\4.5.2\include\QtGui" -I"d:\Qt\4.5.2\include" -I"d:\Qt\4.5.2\include\ActiveQt" -I"release" -I"d:\Qt\4.5.2\mkspecs\default" -o release\window.o window.cpp
g++ -c -O2 -frtti -fno-exceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"d:\Qt\4.5.2\include\QtCore" -I"d:\Qt\4.5.2\include\QtGui" -I"d:\Qt\4.5.2\include" -I"d:\Qt\4.5.2\include\ActiveQt" -I"release" -I"d:\Qt\4.5.2\mkspecs\default" -o release\main.o main.cpp
D:\Qt\4.5.2\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"d:\Qt\4.5.2\include\QtCore" -I"d:\Qt\4.5.2\include\QtGui" -I"d:\Qt\4.5.2\include" -I"d:\Qt\4.5.2\include\ActiveQt" -I"release" -I"d:\Qt\4.5.2\mkspecs\default" -D__GNUC__ -DWIN32 window.h -o release\moc_window.cpp
g++ -c -O2 -frtti -fno-exceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"d:\Qt\4.5.2\include\QtCore" -I"d:\Qt\4.5.2\include\QtGui" -I"d:\Qt\4.5.2\include" -I"d:\Qt\4.5.2\include\ActiveQt" -I"release" -I"d:\Qt\4.5.2\mkspecs\default" -o release\moc_window.o release\moc_window.cpp
d:\Qt\4.5.2\bin\rcc.exe -name systray systray.qrc -o release\qrc_systray.cpp
g++ -c -O2 -frtti -fno-exceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"d:\Qt\4.5.2\include\QtCore" -I"d:\Qt\4.5.2\include\QtGui" -I"d:\Qt\4.5.2\include" -I"d:\Qt\4.5.2\include\ActiveQt" -I"release" -I"d:\Qt\4.5.2\mkspecs\default" -o release\qrc_systray.o release\qrc_systray.cpp
g++ -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,windows -o release\systray.exe release/window.o release/main.o release/moc_window.o release/qrc_systray.o  -L"d:\Qt\4.5.2\lib" -lmingw32 -lqtmain -lQtGui4 -lQtCore4
make[1]: Leaving directory `C:/systray'
离线dbzhang800

只看该作者 1楼 发表于: 2009-10-16
静态编译的第一步是: 下载Qt源码,静态编译Qt
离线jiangll
只看该作者 2楼 发表于: 2009-10-16
"dbzhang800"感谢你的回复,qt源码已经在qt安装路径下了,静态编译qt要怎么进行。因为我只想做静态编译自己写的小程序,没有想到这一层,但你说的很正确,可以具体一点么。刚刚开始学习qt很多不懂,还请谅解。
离线dbzhang800

只看该作者 3楼 发表于: 2009-10-16
具体你可以搜下论坛或google一下, 或者看 configure -help
离线zzh

只看该作者 4楼 发表于: 2009-10-16
不用搜了,怎么设置都不成功,我至今无法用mingw进行静态编译,好像别人能用vc++进行静态编译,只是configure -static加上就可以了
离线wato
只看该作者 5楼 发表于: 2009-10-16
我的QTE程序用静态库编译后有12多M,但也无法在板子上运行
离线jiangll
只看该作者 6楼 发表于: 2009-10-16
恩,谢谢诸位的解答。
离线jiangll
只看该作者 7楼 发表于: 2009-10-17
昨天又看了一些资料,个人觉得是不是由于协议的问题,用的是开源的qt版本,因为看到这样一句“GPL的qt版不能用于Visual C++”。敬请了解的详情的前辈赐教。
快速回复
限100 字节
 
上一个 下一个