undefined reference to

多个库文件链接顺序问题

这种问题非常隐蔽,不仔细研究,可能会感到非常地莫名其妙。以第三个示例为测试代码,把链接库的顺序换一下,如下所示:

 
  1. $ gcc -o main main.c func.a test.a

  2. test.a(test.o): In function `test':

  3. test.c:(.text+0x13): undefined reference to `func'

  4. collect2: ld returned 1 exit status

因此,在链接命令中给出所依赖的库时,需要注意库之间的依赖顺序,依赖其他库的库一定要放到被依赖库的前面,这样才能真正避免undefined reference的错误,完成编译链接。

备注:在MAC上可以正常编译通过。

>ps

./lib/libcpp_redis.a ./lib/libtacopie.a

 

你可能感兴趣的:(编程经验,c++,代码,c,linux经验,数据库)