qt项目编译出现如下图所示 英文错误怎么解决?

QT构建编译出现错误error:&undefined&reference&to&的解决办法
这里要解决问题的是QT构建中的
error: undefined reference to
undefined reference to vtable for "xxx::xxx"
QT构建编译出现error: undefined reference
to时,请先确认语法是否有错(建议单独新建一个项目只检查出错的代码是否语法有误)。本文由Coding库丁原创,如果确定语法无误,则尝试一下的方法:
这里以下列语句为例
QNetworkAccessManager
*manager =
new QNetworkAccessManager();
构建编译出现错误:
error: undefined reference to ……
用记事本或者notepad++打开项目文件(*.pro文件),内容如下:
#-------------------------------------------------
# Project created by QtCreator T14:15:31
#-------------------------------------------------
QT & & & +=
QT & & & -=
TARGET = GetWebPageContent
CONFIG & += console
CONFIG & -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
HEADERS += \
& & myHeaderFile.h
(*.pro文件内容结束)
原来*.pro文件只添加了QT+=core,但是没有添加QNetworkAccessManager类所在的目录network,我们只需要添加相应的目录并且保存即可。本文由Coding库丁原创,修改后的*.pro文件内容如下:
#-------------------------------------------------
# Project created by QtCreator T14:15:31
#-------------------------------------------------
QT & & & +=
QT & & & +=
QT & & & -=
TARGET = GetWebPageContent
CONFIG & += console
CONFIG & -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
HEADERS += \
& & myHeaderFile.h
(*.pro文件内容结束)
再次构建,编译成功。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。71Windows下Qt静态编译连接和DLL依赖问题解决
上亿文档资料,等你来发现
71Windows下Qt静态编译连接和DLL依赖问题解决
Windows下Qt静态编译连接和生成程序的mi;本文编写和程序配置调试:蔚蓝winland070;一、官方Qt库-MinGW版本(QtCreato;1、MinGW版本;(1)MinGW官方版本(gcc-4.5.2);使用dwarf2异常处理,默认使用动态C运行时库;libstdc++-6.dll(860K);使用参数-static可以解除对以上dll依赖;
Windows下Qt静态编译连接和生成程序的 mingwm10.dll、 libgcc_s_dw2-1.dll依赖问题解决本文编写和程序配置调试:蔚蓝
)一、官方Qt 库-MinGW版本(Qt Creator)静态编译和DLL依赖解决1、MinGW版本(1)MinGW官方版本(gcc-4.5.2)使用dwarf2异常处理,默认使用动态C运行时库,默认生成的程序依赖: libgcc_s_dw2-1.dll(105K)libstdc++-6.dll(860K)使用参数 -static 可以解除对以上dll依赖。现在新版MinGW生成的程序默认已经不依赖mingwm10.dll了。 (2)TDM-GCC版本(Codelite和CodeBlocks带的,gcc-4.4.1)使用sjlj异常处理,默认使用静态C运行时库,默认生成的程序独立运行,无dll依赖问题。(3)MinGW Distro - nuwen.net最新版本(gcc
4.6.0)使用dwarf2异常处理,默认使用静态C运行时库,无DLL依赖问题。 (4)QP-GCC版本(gcc-4.4.5)使用dwarf2异常处理,默认使用静态C运行时库,无DLL依赖问题。 (5)PCX版本,包括32bit和64bit版本的MinGW(最新有gcc 4.6测试版) 与(4)差不多,无DLL依赖问题。 (6)Qt库自带的MinGW(gcc-4.4.0)GCC配置信息:D:\Qt\2011qt&gcc -vUsing built-in specs.Target: mingw32Configured with: ../gcc-4.4.0/configure--enable-languages=c,ada,c++,fortran,java,objc,obj-c++--disable-sjlj-exceptions --enable-shared --enable-libgcj --enable-libgomp--with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug--enable-version-specific-runtime-libs --prefix=/mingw --with-gmp=/mingw/src/gmp/root --with-mpfr=/mingw/src/mpfr/root --build=mingw32Thread model: win32gcc version 4.4.0 (GCC)Qt带的这个MinGW比较老,gcc-4.4.0版,使用dwarf2异常处理,默认使用动态C运行时库。编写helloworld控制台程序,main.cpp #include &iostream&#include &cstdio&#include &cstdlib& int main(int argc, char **argv){printf(&Hello World!\n&);cout&&&Hello World!\n& ;system(&PAUSE&);return 0;} ①编译命令:g++ -o hello.exe
-mthreads依赖DLL:mingwm10.dll (12KB)libgcc_s_dw2-1.dll(42KB)生成的hello.exe有3.59MB。很大,莫名其妙。 ②编译命令:g++ -o hello.exe
main.cpp依赖DLL:libgcc_s_dw2-1.dll(42KB)生成的hello.exe有3.58MB。 ③编译命令:g++ -o hello.exe
-static依赖DLL:无。生成的hello.exe有3.67MB。 ④编译命令:g++ -o hello.exe
-static依赖DLL:mingwm10.dll (12KB)生成的hello.exe有3.68MB。 最后一个命令我们看到一个有意思的现象,Qt带的这个MinGW的gcc-4.4.0里压根没有mingwm10.dll对应的静态库版本,所以存在-mthreads参数时,不管怎么用-static参数,它总是需要动态库mingwm10.dll,这就是官方Qt让人纠结的地方。只要使用它自带的MinGW,在-mthreads参数启用时,你不管怎么搞,生成的exe必定依赖mingwm10.dll,怎么搞都搞不掉,这就是官方Qt库让人抓狂的地方。网上有人说自己编译qt库,去掉-mthreads来编译自己qt库,当然不推荐这种搞法。还有使用-no-exceptions 配置来编译qt库,这也不好,异常处理都搞没了。mthreads是多线程异常处理安全库,图形界面一般都要用的。下面我们通过换掉Qt官方老掉牙的MinGW来解决mingwm10.dll依赖的问题。 2、通用测试的helloqt程序代码弄个helloqt文件夹,建个 helloqt.cpp
:#include &QApplication&#include &QLabel& int main(int argc, char *argv[]){QApplication app(argc, argv);QLabel *label = new QLabel(&&h1&Hello Qt !&h1&&);label-&show();return app.exec();} 打开Qt环境命令行,执行:$
D:\QtExample\helloqt$ qmake
-project$ qmake
helloqt.pro生成Debug版程序:$ mingw32-make
Makefile.Debug生成Release版程序$ mingw32-make
Makefile.Release 3、官方Qt版本(默认动态库)和Qt Creator带的MinGW版本(默认动态C运行库)测试(1)打开开始菜单----》Qt by Nokia v4.7.2 (MinGW OpenSource)----》Qt 4.7.2 Command Prompt $ cd
D:\QtExample\helloqt然后按2中生成项目,编译连接程序。生成helloqt.exe,Debug版大小:455 KBRelease版大小:59 KB不能独立运行,依赖DLL顺序:第一:mingwm10.dll
(11 KB)第二:libgcc_s_dw2-1.dll (42 KB)第三:QtCore4.dll
(2.43 MB),debug版对应是QtCored4.dll第四:QtGui4.dll
(9.45 MB),debug版对应是QtGuid4.dll除了exe之外,还得带上4个动态链接库。 (2)使用static参数重新创建将helloqt.pro复制一份,改名为helloqt-s.pro,用记事本打开helloqt-s.pro,在最后一行加上一句:QMAKE_LFLAGS += -static然后保存。在Qt 4.7.2 Command Prompt 命令行内执行:$ qmake helloqt-s.pro$ mingw32-make
Makefile.Debug$ mingw32-make
Makefile.Release生成新的helloqt-s.exe,Debug版大小:541 KBRelease版大小:76 KB 依赖的DLL顺序:第一:mingwm10.dll
(11 KB)第二:QtCore4.dll
(2.43 MB),debug版对应是QtCored4.dll第三:libgcc_s_dw2-1.dll (42 KB)第四:QtGui4.dll
(9.45 MB),debug版对应是QtGuid4.dll 这里奇怪的是,为什么还需要libgcc_s_dw2-1.dll呢?命令行测试helloworld程序在-static生效后是不需要libgcc库的。这里的release版helloqt-s.exe也确实增加了17KB,说明exe本身是带了libgcc代码的。 原因就在这四个依赖库的顺序!可见是QtGui的dll在依赖libgcc_s_dw2-1.dll,Qt库本身还要依赖libgcc_s_dw2-1.dll。Qt官方发布的库是底层用动态C运行时库,并且上层也是动态生成的Qt*.dll,所以即使在生成程序时用了-static参数,也不能减少dll的依赖。 4、官方Qt版本(默认动态库)和QP-GCC版本MinGW(默认静态C运行时库)测试我们将 Qt目录下:\bin\qtvars.bat 复制一份到D:\QtExample\helloqt 目录下面。现在替换MinGW,用记事本打开helloqt目录下的qtvars.bat,原来的:echo Setting up a MinGW/Qt only environment...echo -- QTDIR set to D:\Qt\2011qtecho -- PATH set to D:\Qt\2011qt\binecho -- Adding D:\Qt\2011\mingw\bin to PATHecho -- Adding %SystemRoot%\System32 to PATHecho -- QMAKESPEC set to win32-g++ set QTDIR=D:\Qt\2011qtset PATH=D:\Qt\2011qt\binset PATH=%PATH%;D:\Qt\2011\mingw\binset PATH=%PATH%;%SystemRoot%\System32set QMAKESPEC=win32-g++改写为:echo Setting up a MinGW/Qt only environment...echo -- QTDIR set to D:\Qt\2011qtecho -- PATH set to D:\Qt\2011qt\binecho -- Adding
D:\MinGW\bin
to PATHecho -- Adding %SystemRoot%\System32 to PATHecho -- QMAKESPEC set to win32-g++ set QTDIR=D:\Qt\2011qtset PATH=D:\Qt\2011qt\binset PATH=%PATH%;D:\MinGW\binset PATH=%PATH%;%SystemRoot%\System32set QMAKESPEC=win32-g++cmd
/k改好保存。改后的D:\MinGW\bin就是之前安装QP-GCC版本的MinGW\bin目录。然后双击qtvars.bat,就可以直接打开Qt编译环境命令行了。这样就完成了MinGW替换,我们用新的QP-GCC来编译helloqt程序。(1)生成helloqt.exe$ qmake helloqt.pro$ mingw32-make
Makefile.Debug$ mingw32-make
Makefile.Release生成新的helloqt.exe:Debug版大小:384 KBRelease版大小:62 KB依赖DLL的顺序:第一:QtCore4.dll
(2.43 MB),debug版对应是QtCored4.dll第二:mingwm10.dll
(11 KB)第三:libgcc_s_dw2-1.dll (42 KB)第四:QtGui4.dll
(9.45 MB),debug版对应是QtGuid4.dll注意这四个依赖库的顺序又有变化!这次将QtGui4.dll的依赖体现的清清楚楚!Helloqt.exe使用QP-MinGW生成的,自己默认带静态C运行时库代码的。这里完全是QtGui4.dll惹的祸!QtGui4.dll是使用老版本的gcc-4.4.0动态链接生成的。是QtGui4.dll需要底层C运行时库,就是mingwm10.dll和libgcc_s_dw2-1.dll。要想解除DLL依赖,必须自己动手编译静态Qt库。(2)生成helloqt-s.exe$ qmake helloqt-s.pro$ mingw32-make
Makefile.Debug$ mingw32-make
Makefile.Release生成新的helloqt-s.exe:Debug版大小:384 KBRelease版大小:62 KB由于QP-GCC默认就是使用静态C运行时库,(1)中版本与(2)中完全一样。依赖关系也一样。不赘述了。 包含各类专业文献、应用写作文书、中学教育、文学作品欣赏、生活休闲娱乐、行业资料、幼儿教育、小学教育、专业论文、71Windows下Qt静态编译连接和DLL依赖问题解决等内容。 
 才能运行。 5 解决 MinGW 的 mingwm10.dll 依赖问题 里找到: 在 Makefile....Windows下Qt静态编译连接... 20页 免费 Windows下Qt应用程序开发... 12页 免费...  这个问题有点复杂,其实解决方 法很简单, 只需在...dll, QtCored4.dll, QtGuid4.dll, QtSqld4.dll...Windows下Qt静态编译连接... 20页 免费 关于在windows...  MinGW版本-wxWidgets库编译安装和生成程序DLL依赖问题解决_IT/计算机_专业资料。MinGW...Windows下Qt静态编译连接... 20页 免费 使用wxWidgets开发跨平台... 11页 免...  win7下Qt5.4.0静态编译_计算机软件及应用_IT/计算机...请参照以下链接: /s/...QMAKE_LFLAGS_DLL 将后面都改成 Cstatic,如下图:...  如果 发布就需要一大堆的 dll,而且还要记得复制 plugins...QtStaticWindows5.3.2.7z 里面仅仅包含静态编译的 ...14.1MB,直接双击可以运行,不需要配置依赖,也没什么...  QT 不同,由于 QT 默认是动态编译,正常运行需要调用 QT 的标准库 (即.dll),...Windows下Qt静态编译连接... 20页 免费 QT编译与配置(静态库与静... 暂无评价...  配置编译选项 1)打开 C:\Qt\4.8.4\mkspecs\win...对于动静态共存的工程应该如何处理呢?可以用下 面的...就别了。 最后,希望受 dll 依赖问题烦扰的,能明白...  Linux-Ubuntu 下 Qt 4.7.1静态编译_计算机软件及应用_IT/计算机_专业资料。Qt 的静态编译是本文介绍的内容,相比较来说 windows 的 Qt 静态编译比较容易, 相反...  但是,根据我在 Windows 下静态编译 Qt 的经验,其实这之中很多东西都是可以不...Qt 库之外的那些库),当然,这不排除 Qt 会静态连接一些会导致兼容性问题的库...关于在Qt SDK编译affine等demo时出现error: cannot find -ldemo_shared等错误的解决方案: - 下载频道 - CSDN.NET
&&&&关于在Qt SDK编译affine等demo时出现error: cannot find -ldemo_shared等错误的解决方案:
&关于在Qt SDK编译affine等demo时出现error: cannot find -ldemo_shared等错误的解决方案:
关于在Qt SDK编译affine等demo时出现error: cannot find -ldemo_shared等错误的解决方案:
Qt 4.8.2 Command Prompt
Qt SDK版本: Qt 4.8.1 for Desktop (MinGW)
qmake版本: e:\qt\4.8.2\qmake\qmake.exe(即Qt 4.8.0 Static Release)
1、首先打开E:\QtSDK\Demos\4.7\shared\arthurwidgets.cpp将
#include &private/qpixmapdata_p.h&
注释掉,不然编译过程中会出错。
2、然后在Qt 4.8.2 Command Prompt中打开E:\QtSDK\Demos\4.7\shared,然后执行qmake -config release。将会出现
ar: creating release\libdemo_shared.a
表示完成。
3、用Qt Creator打开工程affine.pro,用刚才编译E:\QtSDK\Demos\4.7\shared相同的qmake工具编译affine,不然会报错。
然后就会编译通过并运行了。
若举报审核通过,可奖励20下载分
被举报人:
fangxianghuamei
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
评价资源返积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
积分不够下载该资源
如何快速获得积分?
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
关于在Qt SDK编译affine等demo时出现error: cannot find -ldemo_shared等错误的解决方案:
所需积分:0
剩余积分:
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
VIP服务公告:“Qt没有被正确安装,请运行make install““无效的Qt版本”的解决方法
时间: 14:24:05
“Qt没有被正确安装,
请运行makeinstall“
“无效的Qt版本”的解决方法
嗯,如果你遇到了这种情况,相信你的Qt版本是复制的吧。我也是这样的情况,本想自作聪明将Qt版本复制到了别的路径,却发现QtCreator不能识别。不过下面的办法可以帮你摆脱这样的困扰。也是我不久前研究出来的,核心是——修改可执行的qmake。
遇到了如上图所示的情况,首先需要分析。为什么安装的时候不会出现这个问题,而我们改变路径的时候就出问题了?很简单,路径不对呗。我们看看可用的Qt版本的详情。
我们看到有很多有关QT的环境变量,于是我想去mkspecs文件夹搜索相关的环境变量。可是我去mkspecs文件夹搜索了好几遍,没有任何收获。这是什么原因呢?
原来Qt这一招真是高,安装Qt的时候编译了qmake,将相关路径内嵌入qmake代码中了,你说我们找了半天是不是一无所获!好了,俗话说“你高一尺,我高一丈”,我决定修改一下qmake可执行文件。
首先我们来看看qmake到底有什么。用QtCreator自带的二进制编辑器打开看看。
/home/jiangcaiyang/Programs/QtSDK是我安装时候的目录,可是我改变了它改为/home/jiangcaiyang/Programs/Qt4.8.4,qmake就不工作了,难怪Qt的版本无效呢。
现在我们该修改一下了。等等QtCreator自带的二进制编辑器可是无法修改二进制文件的,还得我们自己下载编辑器。这里我们下载Ubuntu软件中心广受好评的bless二进制编辑器(需要的话可以到Ubuntu的软件中心中下载)。先将qmake备份一下,打开bless,载入qmake,Ctrl+R准备替换。这里需要注意的是,如果你的路径字节数大于原来的路径字节数,那么需要删除后面几个填充的0,如果你的路径字节数小于原来的路径字节数,那么需要补充若干个0,这样才不至于出现段错误。我一开始就是出现了这样的错误呢。下面是我修改的界面:
改完之后保存或者另存为(如果另存为的话,那么新的qmake需要手动添加权限,使用chmod+x或者使用Nautilus(Ubuntu自带的资源管理器)均可)。将新的qmake复制到/home/jiangcaiyang/Programs/Qt4.8.4/bin下,再在选项中重新载入,成功!
后记:这个办法也是不得已而为之的,因为我没怎么研究Qt是如何编译的,或许还会有更好的办法吧。不过呢,这样可以让我们不再拘泥于固定路径的Qt版本了,如果我们想打造自己的Qt便携式开发环境,那么相信我这个“土”方法一定会帮上忙的。
$T.total > 0 && $T.page <= $T.pageNum}
{#foreach $T.data as r}
{$T.r.formt_tm}{#if $T.r.nickname}{#else}匿名{#/if}
{$T.r.content}
{#if $T.page > 1 && $T.pageNum > 1)
$T.s_num > 2}
{#for index = $T.s_num to $T.e_num}
$T.pageNum > $T.pageNavSize+ 2 && $T.s_num != $T.pageNum - $T.pageNavSize}
{#if $T.pageNum > 1}
{#if $T.pageNum != $T.page && $T.pageNum > 1}
<a href="javascript:void(0);" page="{$T.page 下一页
您的回应...
也许你感兴趣
(C)2012 本站提供的内容来源于广大网络用户,我们不保证内容的正确性。如果转载了您的内容,希望删除的请联系我们!}

我要回帖

更多关于 如下图所示 英语 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信