今天编译测试进程的时候,链接了libxxx.a,但是生成的进程中nm找不到对应的静态库符号表。
前提:
进程mak仅编译一个main.cpp,然后链接相应的库
搞了好几天,在main.cpp和静态库libxxx.a中定义了相同的变量,发现居然不报错。
在main.cpp中extern libxxx.a中变量并使用,发现可以正常链接静态库了。
查了一下网上说的,发现可以使用如下内容链接选项:
使用 -Wl,–whole-archive 选项会强制将整个静态库连接到可执行文件中,-Wl,–no-whole-archive 是结束标志。
看来默认情况下主函数不引用静态库中的定义,是链接不到进程中的。