• error LNK2019 无法解析的外部符号


    1、问题:

    最近使用QT 5.0.2 设计界面,遇到一个纠结的问题:

    建立工程后,再新建一个新的类(如class a),类声明在a.h头文件中,在main.cpp中 #include "a.h" 但是在链接过程中报错:类a的所有成员函数(构造函数,析构函数等)均无法识别,被编译器标为“无法解析的外部符号”。

    解决:

    将当前qt工程所在的父目录下的 build-(工程名)-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug 文件夹删除,再构建项目即可运行。。

    2、问题:

    在qt中使用了#include<QtMultimedia/QAudioInput> 实现录音功能,但是发现所有使用QtMultimedia中的类的成员函数均被判为:error LNK2019: 无法解析的外部符号 "__declspec(dllimport),使用上一种方法无法解决。

    解决:

    查了网上的一些资料,发现链接错误是由于最后在生成可执行程序时无法找到某个库所造成的,即程序编译是没有问题的,例如你的代码里面声名了一个函数,然后也有很多地方用到了这个函数,但是这个函数真正的实现是在某个你引用的库里面实现,定义的,因此,在编译阶段是不会报错的,但等到真正链接时,就要去打这个函数的实现了,此时,如果编译器找不到对应的库文件(win下一般为.lib谁的),就会报这种链接错误了。

    所以真正的问题是没有加载库

    加载库的方法有两种:

    1)在qt的工程文件.pro中添加:QT += multimedia (库名)

    2)向项目添加对应的lib文件

    使用1)解决了问题。

    加布兽净化
  • 相关阅读:
    方法重载与方法重写的概念和区别(转载)
    sql exist 和not exist(转载)
    SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思 sql server 2005 2008
    sql中的isnull
    sql中unique和distinct
    SQLServer中的Merge使用
    SQL Server系统表sysobjects介绍与使用
    sql select as
    存储过程SET XACT_ABORT ON
    SQL Server之存储过程基础知识
  • 原文地址:https://www.cnblogs.com/jbhs/p/14143808.html
Copyright © 2020-2023  润新知