qt550编译
① QT中怎么静态编译,静态编译的步骤是什么。
Qt采用编译的方式安装的时候,配置中默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,所以在此介绍一下qt如何来进行静态编译第一步:下载源码包Qt/X11版本:qt-x11-opensource-src-4.5.2.tar.gz第二步:解压缩tarzxvfqt-x11-opensource-src-4.5.2.tar.gz第三步:进入到刚才解压缩后的文件夹下并进行配置,如下./configure-release-platformwin32-msvc2008-static-nomakeexamples-nomakedemos-no-qt3support-no-scrip
...
by
fengyetang
2010-07-04
回复
(0)
② cmake + Qt 5 编译出错,请帮忙看看怎么解决
Qt在编译时,需要首先使用uic.exe编译UI文件,通过moc.exe处理Q_OBJECT之类的宏,当然你可以去掉这些定义,否则就需要加上:
# COMPILE UIs
SET(UIS
mnwindow
)
FOREACH (ui_file ${UIS})
SET(TMP_IN "${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")
SET(TMP_OUT "${PROJECT_BINARY_DIR}/ui_${ui_file}.h")
EXECUTE_PROCESS(COMMAND ${QT_FOLDER}/bin/uic.exe -o ${TMP_OUT} ${TMP_IN})
MESSAGE(STATUS "EXEC=${QT_FOLDER}/bin/uic.exe -o ${PROJECT_BINARY_DIR}/ui_${ui_file}.h ${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")
ENDFOREACH(ui_file)
# CREATE MOC
SET(HEADERS
mainwindow
)
FOREACH (header_file ${HEADERS})
SET(TMP_IN "${PROJECT_SOURCE_DIR}/inc/${header_file}.h")
SET(TMP_OUT "${PROJECT_BINARY_DIR}/moc_${header_file}.cpp")
EXECUTE_PROCESS(COMMAND ${QT_FOLDER}/bin/moc.exe -o ${TMP_OUT} ${TMP_IN})
SET(MOCS ${MOCS} ${PROJECT_BINARY_DIR}/moc_${header_file}.cpp)
MESSAGE(STATUS "EXEC=${QT_FOLDER}/bin/moc.exe -o ${PROJECT_BINARY_DIR}/moc_${header_file}.cpp ${PROJECT_SOURCE_DIR}/inc/${header_file}.h")
ENDFOREACH(header_file)
free c#.net qr creator
这里要注意的是:EXECUTE_PROCESS在COMMAND后面不能加引号,命令直接写,否则执行的程序也不会出错,但也不会正常运行.
③ QT 5.5.0 怎么设置才能实现静态编译
qt默认的编译方式是动态编译的,但是有时候编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译程序,qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:
1.将c:\qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的qmake_lflags
=
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
改为
qmake_lflags
=
-static
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
2.在开始菜单里找到qt
command
prompt并运行,输入命令:
configure
-static
-debug-and-release
-no-exceptions
-l
"c:\qt\2010.05\qt\include"
-l
"c:\qt\2010.05\qt\lib"
-l指定一下路径,防止用到vc的头文
④ Qt5 在linux 下的编译,该怎么处理
[wanglj@localhost testQT]$ make
g++ -o testQT main.o -L/opt/Qt5.1.1/5.1.1/gcc_64/lib -lqt-mt -lXext -lX11 -lm
main.o: In function `main':
/home/wanglj/testQT/main.cpp:6: undefined reference to `QApplication::QApplication(int&, char**, int)'
main.o: In function `QString':
/usr/include/QtCore/qstring.h:413: undefined reference to `QString::fromAscii_helper(char const*, int)'
main.o: In function `main':
/home/wanglj/testQT/main.cpp:7: undefined reference to `QLabel::QLabel(QString const&, QWidget*, QFlags<Qt::WindowType>)'
main.o: In function `~QString':
/usr/include/QtCore/qstring.h:869: undefined reference to `QString::free(QString::Data*)'
/usr/include/QtCore/qstring.h:869: undefined reference to `QString::free(QString::Data*)'
collect2: ld 返回 1
make: *** [testQT] 错误 1
但若直接用 qtcreator 打开编译,则无错误
并且find -name libqt-mt* 也找不到其他版本的该文件
用qtcreator编译好的可执行文件,也找不到连接该lib文件
[wanglj@localhost build-testQT-桌面-Debug]$ ldd testQT
linux-vdso.so.1 => (0x00007fff4ddff000)
libQtGui.so.4 => /usr/lib64/libQtGui.so.4 (0x000000397f000000)
libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x000000397ea00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003978600000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fda6a081000)
libm.so.6 => /lib64/libm.so.6 (0x0000003977a00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003983a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003977e00000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x000000397a600000)
librt.so.1 => /lib64/librt.so.1 (0x0000003978e00000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003979200000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x000000397be00000)
libz.so.1 => /lib64/libz.so.1 (0x0000003978a00000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x000000397ba00000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x0000003979e00000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x0000003985a00000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x0000003984e00000)
libXi.so.6 => /usr/lib64/libXi.so.6 (0x000000397ce00000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x000000397d600000)
libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x000000397de00000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x000000397da00000)
libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x000000397e200000)
libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x000000397e600000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x000000397d200000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x000000397c600000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x000000397b600000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003978200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003977600000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003983600000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x000000397c200000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x000000397ae00000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x000000397aa00000)
------解决方案--------------------
INCPATH = -I/usr/lib64/qt-3.3/mkspecs/default -I. -I. -I$(QTDIR)/include
这一行看上去你调用的qmake不是5.1.1的。试试指定完整路径运行qmake
/opt/Qt5.1.1/5.1.1/gcc_64/bin/qmake testQT.pro
⑤ qt5.4 源码编译安装问题
在配置的时候加上 -nodbus,希望采纳,因为我编译的时候也遇到了,加上之后就好了。
⑥ 已经安装qt5.7 怎么重新编译qtcreator
应该不是啊,qt在编译的时候都是调用makefile,实现“智能编译的”,也就是,当他发现编译的目标文件比他的依赖文件还要早的话就会重新编译,所以会提高编译效力
⑦ 关于qt creator的编译问题(qt版本5.0.2),大家帮帮我啊。谢谢了
QApplication是在5.0.2/mingw47_32/include/QtWidgets下
Qt5.x确实和Qt4.x有所区别
你可以尝试在pro文件中加上QT =core gui widgets
将#include<QApplication>改为#include<QtWidget/QApplication>,其他的比如QLabel也是一样
⑧ Qt下如何编译库
akefile文件。一般是qt里自带的qmake工具。
首先先写好cpp和头文件,在当前目录下依次执行qmake -project,qmake,make即可编译。
另外,团IDC网上有许多产品团购,便宜有口碑
⑨ 请教Qt5下qtftp的编译问题
注意编译器一定要和MYSQL的平台版本一致,32位的用32位的编译器编译,64位的用64位的编译器编译。 准备工作:MYSQL的目录:D:\SQL_Server\mariadb Qt5.1.1