LNK2019和LNK1120在外部文件中具有功能

时间:2010-10-16 06:49:49

标签: c++ linker linker-errors lnk2019

我已经从源文件中取出了一些函数到另一个,因为我想在其他文件中也使用它们。目前的结构如下

utils/extFuncs.h

#ifndef _extFuncs_h
#define _extFuncs_h
inline int someFunction (float v);
#endif

utils/extFuncs.cpp

#include "utils/extFuncs.h"
inline int someFunction (float v) {
    return 42;
}

foo/bar.h

#ifndef _bar_h
#define _bar_h
#include "utils/extFuncs.h"
class Bar {
public:
    Bar (float x);
};
#endif

foo/bar.cpp

#include "foo/bar.h"
Bar::Bar (float x) {
    int y = someFunction(x);
}

问题是,当我尝试编译它时,链接器会抱怨并说符号someFunction无法解析。

2 个答案:

答案 0 :(得分:2)

someFunction被声明为inline,因此必须在头文件中定义:

utils/extFuncs.h

#ifndef _extFuncs_h
#define _extFuncs_h
inline int someFunction (float v)
{
    return 42;
}
#endif

答案 1 :(得分:0)

您是否尝试添加extFunction.h& extFunction.cpp进入你的项目工作区?