我已经从源文件中取出了一些函数到另一个,因为我想在其他文件中也使用它们。目前的结构如下
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
无法解析。
答案 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进入你的项目工作区?