发信人: w8602123 (梦のしずく), 信区: D_Computer
标 题: 关于VS2010中的C++在编译过程中出现的LNK2005错误,发信站: 南京大学小百合站 (Mon Mar 17 10:41:20 2014)

自己利用VS2010所写的C++程序出现了大量的“LNK2005 errors”,久而久之,一直没
有解决,今日特来请教:
由于A.cpp、B.cpp、C.cpp等不同的cpp文件中需要同时调用一些全局变量,自定义宏
,自定义函数等,因此我参考书上的作法,将这些变量、宏和函数统一写到了一个自定义
的headline.h头文件中,然后再将所有的A.cpp、B.cpp和C.cpp文件中同时include "
headline.h",结果经过编译时,就出现了大量的LNK2005 errors,然后经过查阅相关C++书
籍和网络,得知在自定义的headline.h头文件的最开始,写入#pragma once命令,可以防
止头文件被多次包含,可是楼主试了,仍然不灵;于是我又利用#ifndef、#define和#
endif指令,可是结果仍然如出一辙。
①在楼主自定义的headline.h头文件中,关于我对#pragma once命令的使用:
1 #pragma once
2 int Lx=50,Ly=50,Lz=50; /*不同cpp文件中需要调用的全局变量*/
3 #define PI 3.14159265; /*不同cpp文件中需要调用的自定义宏*/
4 int nint(double x) /*不同cpp文件中需要调用的自定义函数*/
{
return (int)(x+0.5);
}
②在楼主自定义的headline.h头文件中,关于我对#ifndef、#define和#endif等命令
的使用:
1 #ifndef _HEADLINE_H
2 #define _HEADLINE_H
3 int Lx=50,Ly=50,Lz=50; /*不同cpp文件中需要调用的全局变量*/
4 #define PI 3.14159265; /*不同cpp文件中需要调用的自定义宏*/
5 int nint(double x) /*不同cpp文件中需要调用的自定义函数*/
6 {
7 return (int)(x+0.5);
8 }
9 #endif
①和②两种方法所写的自定义headline.h头文件,在编译A.cpp、B.cpp和C.cpp等文件
的过程中,仍然报错LNK2005 errors,目前楼主实在无能为力了,特请相关人士帮忙解答
,因为楼主非计算机专业,只是临时工作需要掌握这些知识,谢谢!!!
--
※ 来源:.南京大学小百合站 http://bbs.nju.edu.cn [FROM: 114.212.245.115]