链接C++库时的未定义引用

Joh*_*oma 2 c++ linker static

我编写了一个C++库,当链接到库时,无法找到符号.这是我得到的:

a.cpp:

void zak()
{
}
Run Code Online (Sandbox Code Playgroud)

TEST.CPP:

extern void zak();

int main(int argc, const char ** argv)
{
    zak();
}
Run Code Online (Sandbox Code Playgroud)

Makefile文件:

all:
    g++ -c -o a.o a.cpp
    ar r libzak.a a.o
    g++ -L. -lzak test.cpp -o test
Run Code Online (Sandbox Code Playgroud)

这是我的(Linux Mint 13)框中的内容:

g++ -c -o a.o a.cpp
ar r libzak.a a.o
g++ -L. -lzak test.cpp -o test
/tmp/ccC4cnLV.o: In function `main':
test.cpp:(.text+0x7): undefined reference to `zak()'
collect2: error: ld returned 1 exit status
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

我确信我错过了一些明显的东西,但它是什么?

NPE*_*NPE 5

链接订单很重要.-lzaktest.cpp链接线.