zoukankan      html  css  js  c++  java
  • Debug 调试错误

     首次调试出现进程错误,后修改平台工具如下:

    编译报错显示调试工具与目标文件存在版本冲突,网上大多解决办法为重新安装对应版本工具平台,但是消耗时间精力,不做专业开发工具可以用下面的方法解决;

    注意第一次编译时提示进程错误,即可以将编译项目无需附加到现有进程中:(此时可以进行调试)

    visual studio 修改头文件路径导致文件报错:

    在程序开发中,很多时候需要用到别人开发的工具包,如OpenCV和itk。一般而言,在vs2008中,很少使用源文件,大部分是使用对类进行声明的头文件和封装了类的链接库(静态lib或动态dll)。

       如果要使用这些类,需要在文件中包含头文件的名字,如#include “cv.h”。但这个并不够,因为这个文件一般来说不在当前目录下,有两种方法解决这个问题。一,将所包含的头文件复制到当前目录(另一篇文章有写)下,这个比较有局限性,因为如果头文件太多,这样比较麻烦。二,将头文件所在的路径包括进去,即添加包含(include)文件目录。两种方法:A.依次打开“项目——属性——配置属性——C++——常规——附加包含目录”中加入所有的路径。这里需要注意的是(1)路径必须指向头文件所在的子文件夹,而不能直到父文件夹就结束(2)每个路径不需要加上双引号,输入了之后,vs2008会自动加上双引号,如果自己加可能vs2008无法识别双引号(3)如果是多个路径,路径直接用“;”隔开。B.[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台,然后添加所需“包括文件”目录。

        除了头文件以外,也需要告诉编译器,类在哪里实现的,即封装类的链接库在哪里,这样程序才能执行工具包中的函数。

        首先需要将链接库的路径输入vs2008,即添加库(libs)文件目录。两种方法:A.依次打开“项目——属性——配置属性——链接器——常规——附加库目录”中加入链接库的路径。B.[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台。

         然后添加所需“库文件”目录,即添加编译所需要(依赖)的 lib 文件 。在“项目——属性——配置属性——链接器——常规——输入——附加依赖项”中加入链接库的名字,多个lib用空格隔开。(等同于“#pragma comment(lib, “xxx.lib”) ”语句)。

    error LNK2019 先看图:

    函数声明的头文件写了,函数定义的cpp文件也加入工程了,而且你很确定函数体肯定是在这个库文件中,却依然出现LNK2019错误了!

    因为 项目编译器是c/c++ 的,所以当你发布头文件不注意规则时,在其他文件中调用发布函数时编译器闷逼了!

    简单说就是C语言和C++语言混编,因为C++支持函数重载所以C++编译器生成的库文件中的函数名会面目全非,例如C编译器会生成 _readRegmark 这个函数名,而C++编译器则生成了"void __cdecl readRegmark(char *)" (?readRegmark@@YAXPAD@Z)这么个函数名。当你的函数是用C语言写的,VS编译器会按C语言规则编译,但链接器却不知道还傻傻的用C++规则的函数名去找结果就找不到了,而你还百般肯定TM的不就在这个库中吗你个睁眼瞎。修改方法就是告诉给链接器提示这个函数是C语言的。引用:https://www.cnblogs.com/hiloves/p/4678848.html

    #ifdef __cplusplus
    extern "C" {
    #endif
    
    void readRegmark(char *regmark);  //这里写函数声明
    
    #ifdef __cplusplus
    }
    #endif

    错误!

    错误	1	error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, 
    use _CRT_SECURE_NO_WARNINGS. See online help for details.

      意思是strcpy函数使用不安全,可能 是输入变量不规范造成的。给出解决方案是用  _CRT_SECURE_NO_WARNINGS 进行预处理。

  • 相关阅读:
    用c#开发微信(2)扫描二维码,用户授权后获取用户基本信息 (源码下载)
    3分钟上手log4net
    sql server 小技巧(8) visual studio 2013里使用Sql server compact 4.0及发布问题处理
    用c#开发微信(1)服务号的服务器配置和企业号的回调模式
    Dynamic CRM 2015学习笔记(6)没有足够的权限
    STL
    表格视图
    表格视图
    STL
    Python编程-Office操作-操作Excel(中)
  • 原文地址:https://www.cnblogs.com/LVNG2018/p/12053315.html
Copyright © 2011-2022 走看看