• vc 找到一个或多个多重定义的符号


    vc 找到一个或多个多重定义的符号, 这个问题还是不能很好的解决.

    最根本的是: 把所有有关定义的部分都放在.cpp文件中,对应的.h文件中只放声明.
    这样在#include ""的时候就可以完全避免出现符号重定义的现象.

    万一真的碰到这种情况,可以试着用以下两种方法解决一下:

    1.VS2005中,在项目->属性->链接器->命令行->附加选项中加 /force 可以解决问题,但会出现警告

    2.在多重定义的符号前加static标识,可以很好的解决

    申明全局变量,全局函数一定要在cpp中申明,其他类引用该全局变量就include该cpp的h文件,然后extern一下就好了,否则容易出现该重复定义错误。 
    这个"容易"是如何解释的呢? 
    例如A.h中如果申明了全局变量int Global; 在B.h中include "A.h"               extern int Global; 
    则你include A.h相当于把A.h中全局变量的申明也include进来了,编译器就会认为是重复定义。所以全局变量和函数申明一定要在cpp中! 
    1、当.h文件里有函数实现时,VS2005编译器报此错误,解决方法 : 1)在.h里的函数声明前加 inline 
    2)在项目->属性->链接器->命令行->附加选项中加   /force   

    2、当函数实现位于.cpp文件时,要在函数实现之前加上inline

  • 相关阅读:
    c++ 内存管理方式
    4.2学习总结
    PTA面向对象程序设计6-3 面积计算器(函数重载)
    3.26学习总结
    PTA——c++面向对象基础
    3.17学习总结.listview用法总结
    3.16学习总结
    3.15学习总结(Python爬取网站数据并存入数据库)
    android开发使用jxl创建Excel
    第一次结对作业
  • 原文地址:https://www.cnblogs.com/yelongsan/p/4142118.html
Copyright © 2020-2023  润新知