zoukankan      html  css  js  c++  java
  • VS遇到的一些问题及解决办法(持续更新)

    在VS下使用QDebug打印调试信息

    问题:

    使用 visual studuio 开发 Qt 程序时却看不到打印的调试信息。

    解决办法:

    右击 “项目名称” -> “属性”,更改 链接器->系统->子系统 为 “控制台 (/SUBSYSTEM:CONSOLE)”

    参考:visual studio 2019开发Qt程序,使用CMD打印QDebug调试信息

    如何调试到 lib 内的函数

    需要是本地电脑上的工程编译出的 lib,具体调试的工程链接该静态库 .lib,这样才能调试到对应的源文件中 .cpp,否则在其他电脑或路径是链接不到库的 .cpp 文件的。

    打开别人的Qt版本的VS工程

    在网上下载了个别人的工程,编译找不到 QWiget 等头文件,说明 Qt 编译器版本不一致,打开 *.vcproj 文件:

      <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|Win32'" Label="QtSettings">
        <QtInstall>msvc2015_32</QtInstall>
        <QtModules>core;gui;widgets</QtModules>
        <QtBuildConfig>release</QtBuildConfig>
      </PropertyGroup>
      <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|Win32'" Label="QtSettings">
        <QtInstall>msvc2015_32</QtInstall>
        <QtModules>core;gui;widgets;opengl;multimedia</QtModules>
        <QtBuildConfig>debug</QtBuildConfig>
      </PropertyGroup>
    

    发现别人的工程是 VS2015_32,如果你电脑 VS 的 Qt 编译器是 VS2017_32,版本不一致肯定编译不了,所以需要修改 *.vcproj 文件,将上面的两个msvc2015_32都修改成msvc2017_32,修改完切进 VS 同意加载所有修改,发现可以找到 QWiget 等头文件了。

    补充介绍另一种方法:右键 "项目名称" -> "Qt" -> "Qt Project Settings",从 "Version" 下拉列表选择你的 Qt 编译器版本,我这里是msvc2017_32。图文参考:vs打开别人的qt项目如何配置

    需要查看函数或变量的调用地方

    有时候你需要查看某个函数或者变量在哪里被调用,不要再使用ctrl + f全局查找了,右键该函数或项目,选择 "查找所有引用" 即可。

    同理还有:"转到定义" 和 "转到声明"。

    VS 快速修改include和lib路径

    如果从一台电脑拷贝一个工程,但其工程的 include 和 lib 路径全是绝对路径,一个个在属性里太过麻烦,如何解决?

    修改 *.vcproj 文件:

    // include路径
    <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..include;..includeFFmpeg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    
    // lib路径
    <AdditionalLibraryDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..libwin32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>      
    

    上面是 Debug|Win32 的 include 和 lib 目录配置。

    如何从dll文件导出对应的导出库lib文件?

    具体可参考:

    如何从dll文件导出对应的lib文件?

    DLL库的编写(导出、导入)与使用

    vs调试dll工程

    参考:

    vs调试dll工程

    VS_Qt打包程序提示“应用程序无法正常启动(0xc000007b)”

    使用DependenciesGui.exe查看依赖库,发现libeay32.dll版本不对,要是阿里云 SDK 提供的那个,使用其它库提供的依然会报错。

    error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2

    release 下,在库版本匹配没有问题。但是编译报错error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”

    解决办法:release 下,工程设置中运行库应该设置为 “多线程 DLL (/MD)”。

    参考:https://www.pianshen.com/article/1192270064/

  • 相关阅读:
    poj 3280 Cheapest Palindrome(区间DP)
    POJ 2392 Space Elevator(多重背包)
    HDU 1285 定比赛名次(拓扑排序)
    HDU 2680 Choose the best route(最短路)
    hdu 2899 Strange fuction (三分)
    HDU 4540 威威猫系列故事――打地鼠(DP)
    HDU 3485 Count 101(递推)
    POJ 1315 Don't Get Rooked(dfs)
    脱离eclipse,手动写一个servlet
    解析xml,几种方式
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/12164248.html
Copyright © 2011-2022 走看看