我定义了一系列函数
func.h中
声明了一个模板函数
template <class T>
void show_array(const T ar[], int const n);func.cpp中定义了它;但在主文件中
#include "fun.h"main(..)
{
int a[] = ...;
double b[] = ..;
show_array(a,10);
show_array(b,10);
}报错:
: error LNK2001: unresolved external symbol "void __cdecl show_array(double const * const,int)" (?show_array@@YAXQBNH@Z): error LNK2001: unresolved external symbol "void __cdecl show_array(int const * const,int)" (?show_array@@YAXQBHH@Z)Debug : fatal error LNK1120: 2 unresolved externals--------------------------------------------------------
直接定义在主文件内却没有错,为什么?
func.h中
声明了一个模板函数
template <class T>
void show_array(const T ar[], int const n);func.cpp中定义了它;但在主文件中
#include "fun.h"main(..)
{
int a[] = ...;
double b[] = ..;
show_array(a,10);
show_array(b,10);
}报错:
: error LNK2001: unresolved external symbol "void __cdecl show_array(double const * const,int)" (?show_array@@YAXQBNH@Z): error LNK2001: unresolved external symbol "void __cdecl show_array(int const * const,int)" (?show_array@@YAXQBHH@Z)Debug : fatal error LNK1120: 2 unresolved externals--------------------------------------------------------
直接定义在主文件内却没有错,为什么?
解决方案 »
- GDI+怎么将image(各种类型jpg,bmp...)在剪贴板中进行存储?
- 请推荐些windwos下socket的ftp编程的资料,谢谢了
- 如何把已经做好的exe程序做成Windows服务程序
- 在高级语言中怎样实现程序的合体?
- 一个简单的问题
- 哪里下载这本书?
- 能帮个忙吗
- 我的com组件中涉及到数据库的操作在asp不可用,而在vb下一直运行正常,其他不涉及数据库的操作在asp下均工作正常,
- 按钮button 的快捷键caption 前加(&字母)就可以,怎样可以设置方向键的快捷键
- 请教:学习操作系统原理你用哪本书?
- 菜鸟提问:怎么把按钮弄成其他的形状
- 超难的问题:传递给系统调用的数据区域太小?求解
#include "fun.cpp"模板不支持编译分离
main.cpp里
#include "fun.cpp"------------------------------------------------我照你这么做了,
但是其它定义的函数又报错:
unc.obj : error LNK2005: "char * __cdecl itobs(int,char *)" (?itobs@@YAPADHPAD@Z) already defined in CPrimer.objfunc.obj : error LNK2005: "int __cdecl invert_end(int,int,char *)" (?invert_end@@YAHHHPAD@Z) already defined in CPrimer.objfunc.obj : error LNK2005: "char * __cdecl end2front(char *,int)" (?end2front@@YAPADPADH@Z) already defined in CPrimer.objDebug/CPrimer.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.CPrimer.exe - 4 error(s), 0 warning(s)