【发布时间】:2014-09-12 16:54:51
【问题描述】:
我收到以下错误:
x.h:3:13: warning: ‘int X::foo()’ used but never defined
/tmp/ccK9qSnq.o: In function `main': main.cpp:(.text+0x7): undefined reference to `X::foo()'
collect2: error: ld returned 1 exit status
在构建以下代码时:
main.cpp
#include "x.h"
int main()
{
X::foo();
}
x.h
namespace X
{
static int foo();
}
x.cpp
#include "x.h"
namespace X
{
int foo()
{
return 1;
}
}
谁能解释原因?
【问题讨论】:
-
它是静态的。也许您打算让它成为
extern(默认情况下哪些功能)?static用于全局函数/变量意味着“没有其他源文件可以看到/使用这个函数/变量”。 I once wrote a mediocre blog post on whatstaticmeans. -
static有很多含义,具体取决于上下文,我想你在这里不需要它。