这几天遇到一个奇葩问题
linux下链接静态库,调用同一个函数,有的能输出,有的不能输出, 调试多次搞不懂
静态库liblog.a
然后有A,B两个类,
还有AA,BB两个类, AA,BB分别使用了A和B类
然后在AA,BB两个类中调用了liblog.a的打印函数
在main.cpp中也使用了liblog.a中的打印函数
但是 编译连接成功后, AA,BB 中的 打印怎么都不输出, main.cpp 中的打印却是可以输出的
AA,BB中的函数调用是成功的,原因是有返回值
gdb调试, 加-g 编译的 也不好调试到AA,BB的函数中去,
在此求帮助!!!
makefile:
linux下链接静态库,调用同一个函数,有的能输出,有的不能输出, 调试多次搞不懂
静态库liblog.a
然后有A,B两个类,
还有AA,BB两个类, AA,BB分别使用了A和B类
然后在AA,BB两个类中调用了liblog.a的打印函数
在main.cpp中也使用了liblog.a中的打印函数
但是 编译连接成功后, AA,BB 中的 打印怎么都不输出, main.cpp 中的打印却是可以输出的
AA,BB中的函数调用是成功的,原因是有返回值
gdb调试, 加-g 编译的 也不好调试到AA,BB的函数中去,
在此求帮助!!!
makefile:
CXX = g++ -g libs: cp ../../Plugin/liblog.a ./ #直接编译 main-1: A.cpp B.cpp AA.cpp BB.cpp main.cpp A.h B.h AA.h BB.h $(CXX) -lpthread -o main-1 A.cpp B.cpp AA.cpp BB.cpp main.cpp liblog.a
解决方案
40
《程序员的自本人修养——链接、装载与库》