我已经从一个源文件中取出了一些函数到另一个文件中,因为我也想在其他文件中使用它们。当前结构如下
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
。
最佳答案
someFunction
被声明为inline
,因此它必须在您的头文件中定义:
utils/extFuncs.h
#ifndef _extFuncs_h
#define _extFuncs_h
inline int someFunction (float v)
{
return 42;
}
#endif
关于c++ - LNK2019 和 LNK1120 具有外部文件中的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3947960/