静态连接顺序的问题
在使用paho-mqtt-c 和paho-mqtt-cpp库时,考虑到部署的方便,决定使用静态库。
paho-mqtt-cpp 是依赖paho-mqtt-c 做的c++ 封装库。连接动态库,不要考虑具体的连接顺序。
纯静态库,连接问题
g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
出现MQTTReasonCode_toString,未定义
连接顺序: ${MQTTC_LIB} ${MQTTCXX_LIB}时
查看符号表,MQTTReasonCode_toString时存在的,当时依然报错。
readelf -s build/src/libpaho-mqtt3a.a | grep -i MQTTReasonCode_toString
调整连接顺序: ${MQTTCXX_LIB} ${MQTTC_LIB},编译通过。静态库符号是向后查找的么?
不明白其原理,属实困惑。
在这里找到原理解释