namespace中定义变量,链接出现"无法解析的外部符号"错误

晴树SEU 2018-01-20 11:27:46
如题.使用namespace管理全局变量,但是一直报错,希望大家不吝赐教!

//array.h 定义容器
#ifndef _array
#define _array

#include <vector>

template<class base>
class Array : public std::vector<base>
{
public:
// Constructors:
Array() : std::vector<base>() { /* Nothing to do here. */ }
};

#endif


//absorption.h 定义类型
#ifndef _absorption
#define _absorption

class SpeciesRecord {
public:
/** Default constructor. */
SpeciesRecord(){}
};

#endif


//species_data.h 声明函数
#ifndef _species_data
#define _species_data
void define_basic_species_data(void);
#endif


//species_data.cc 定义变量
#include "array.h"
#include "absorption.h"

namespace global_data {
Array<SpeciesRecord> species_data;
}

using global_data::species_data;

void define_basic_species_data(void)
{
species_data.push_back(SpeciesRecord());
}


//global_data.h 声明变量
#ifndef _global_data
#define _global_data
#include "array.h"
#include "absorption.h"

class SpeciesRecord;

namespace global_data {
extern const Array<SpeciesRecord> species_data;
}

#endif


//main.c 测试
#include "global_data.h"
#include "species_data.h"



int main(void)
{


define_basic_species_data();
using global_data::species_data;


system("pause");
return 0;
}


使用vs2017,错误信息为:
1>main.cpp
1>main.obj : error LNK2019: 无法解析的外部符号 "void __cdecl define_basic_species_data(void)" (?define_basic_species_data@@YAXXZ),该符号在函数 _main 中被引用
1>F:\Programing\MyMWAS\CodeTest\Projectname\Debug\Projectname.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>已完成生成项目“Projectname.vcxproj”的操作 - 失败。
...全文
915 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
晴树SEU 2018-01-25
  • 打赏
  • 举报
回复
应该去掉const
晴树SEU 2018-01-25
  • 打赏
  • 举报
回复
应该去掉const
晴树SEU 2018-01-25
  • 打赏
  • 举报
回复
大体应该没错,应该去掉const才不会报错
draculamx 2018-01-23
  • 打赏
  • 举报
回复
//species_data.h 声明函数 C/C++ code ? 1 2 3 4 #ifndef _species_data #define _species_data void define_basic_species_data(void); #endif 改成 extern void define_basic_species_data(void);

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧