zoukankan      html  css  js  c++  java
  • fatal error LNK1169: 找到一个或多个多重定义的符号

    申明全局变量,全局函数一定要在cpp中申明,其他类引用该全局变量就include该cpp的h文件,然后extern一下就好了。否则容易出现该重复定义错误。

    这个"容易"是如何解释的呢?

    例如 A.h 中如果申明了全局变量

    int Global;

    在 B.h 中

    include "A.h"
    .....
    extern int Global;
    ......

    则你 include A.h 相当于把 A.h 中全局变量的申明也 include 进来了,编译器就会认为是重复定义。

    所以全局变量和函数申明一定要在cpp中 ,当 .h 文件里有函数实现时,VS编译器报此错误。


    解决方法
    1.在.h里的函数声明前加 inline
    2.在项目->属性->链接器->命令行->附加选项中加  /force 

    以上装载自 David_Hu

    我也遇到这个错误,不过整个工程包含的文件太多,不好分析包含关系,但问题应该差不多的。

    我的解决办法是:

    项目 –> 属性 –> 链接器 –> 命令行 –> 附加选项中 加 /force

    就解决了 error,不过出现了一堆 warning 。

  • 相关阅读:
    iOS开发UI篇—字典转模型
    使用python编写批量卸载android应用的脚本
    CircularProgressBar
    Custom-Progress-Dialog-Android
    picasso jar
    swift
    Python编程
    H264分析工具
    Android Websites
    AnATools
  • 原文地址:https://www.cnblogs.com/VVingerfly/p/6056042.html
Copyright © 2011-2022 走看看