一個詭異的gcc共享庫的鏈接問題

gdb跟蹤時報

 symbol lookup error: ../svc/s_match_order.so: undefined symbol: _Z15pro_match_orderP6CSimDBRlRSsS1_S1_SslSsSsSsllSslSslSsSslllllllSsSs

但是這個函數的源文件是和so工程在一起編譯的

後來用nm工具查看so文件

 T _Z15pro_match_orderP6CSimDBRlRSsS1_S1_SslSsSsSsddSslSslSsSslllllllSsSs

 U _Z15pro_match_orderP6CSimDBRlRSsS1_S1_SslSsSsSsllSslSslSsSslllllllSsSs

差別就在dd和ll

想起來在cpp文件裏改了函數入參的類型,把long改爲double,但是.h裏的聲明沒有改

看來.h和.cpp的函數聲明必須一絲不差才行


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章