0

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

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无法解析。

4

2 回答 2

2

someFunction被声明inline,所以它必须在你的头文件中定义:

utils/extFuncs.h

#ifndef _extFuncs_h
#define _extFuncs_h
inline int someFunction (float v)
{
    return 42;
}
#endif
于 2010-10-16T06:58:14.490 回答
0

您是否尝试将 extFunction.h 和 extFunction.cpp 添加到您的项目工作区?

于 2010-10-16T06:55:16.863 回答