• VC编译错误:error LNK2019: 无法解析的外部符号 __imp__qsort,


    首先确认产生这个问题因为lib跟现在编译生产环境不一致导致的

    /MD:在dll中使用多线程,创建动态链接库的release版本,需要选择。

    /MT: 在exe里使用多线程,创建exe的release版本,需要选择。

    /MTd:同/MT一样,不过是在Debug版本中使用。

    /MDL:同/MD一样,不过是在Debug版本中使用。

    如果是Debug的“在静态库中使用MFC”,不要使用MDd,改用MTd,然后编译即可通过。

    如果是Debug的“在共享DLL中使用MFC”,注意不要使用MTd,改用MDd;

    如果是Release版本“在静态库中使用MFC”,不要使用MD,使用MT;

    如果是Release版本的“在共享DLL中使用MFC”,不要使用MT,使用MD。

    解决方法:(分三步)

    首先配置MFC的使用为在静态库中使用MFC:

    属性->常规->MFC的使用,选择“在静态库中使用 MFC”

    然后,配置运行库:

    属性->C/C++->代码生成->运行库,选择“多线程(/MT)”

    最后,在附加依赖项中加入nafxcw.lib和libcmt.lib两个库文件:(注意:库nafxcw.lib必须先于库libcmt.lib,前者为mfc静态链接库,后者为c运行时库)

    属性->链接器->输入->附加依赖项,添加nafxcw.lib和libcmt.lib

    nafxcw.lib;libcmt.lib;

    MSVCRT.lib;nafxcw.lib;libcmt.lib;

    最后,在忽略特定默认库中 加入 MSVCRT.lib:

    属性->链接器->输入->忽略特定默认库,添加 MSVCRT.lib

    解决完上面可能出错

    可能出现的报错:

     

    解决:

    方法一:

    解决方法: xxxx函数前的__declspec(dllimport) 去掉。

    出现原因: __declspec(dllimport) 必须用于从动态库对应的Lib中导入符号才会用到。

    如果是静态库或者直接源码链接,则必须把__declspec(dllimport)去掉,否则警告。

    方法二:

    下载 libfaad_release.lib库源码,改为静态编译,输出静态库后,替换到源码目录中 重新编译

    Github:https://github.com/veryitman/faacfaad2

    faacfaad2\faad\faad\frontend 这个目录下会有一个vs工程,打开编译就行

     

     解决libfaad_release静态编译出错问题,这个lib是静态编译的-C++文档类资源-CSDN下载

    这是我已经编好的静态编译.lib

    上面加完.lib可能还会出错

     

     

    加个/FORCE:MULTIPLE  就可以了

  • 相关阅读:
    基于Ansys workbench进行发动机风扇非定常流固耦合计算
    mysql事务隔离级别案例(一)
    AI_Neural Network_Note (二)
    UGUI学习笔记(九)自制3D轮播图
    【JavaSE】String类型
    自定义类型 struct/class(类、对象与成员变量)
    论文阅读 DyREP:Learning Representations Over Dynamic Graphs
    一些思考:腾讯股价为何持续都低
    Go访问MySQL数据库
    一些与VIO/SLAM有关又无关的杂谈
  • 原文地址:https://blog.csdn.net/qq_31565379/article/details/126383490