解決cocos2d-x中編譯出現的一個小問題
對於cocos2d-x 2.×中編譯中,若頭文件中引入了#include "cocos-ext.h",在進行C++編譯的時候會遇到如下錯誤:
undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'/lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
在網上google了好長時間,有人說要修改源碼中的cocos2dx.mk中的一些配置,本人按照那個說的改過之後還是出現老問題,在官網上查到的也是這樣的回答,貌似修改cocos2dx.mk可以,但是我始終沒解決。
附上官方的解決辦法:點擊打開鏈接,如下
最後在論壇中找到解決辦法,最簡單的辦法。
在linux下用C++開發cocos2d-x時需要用到makefile文件,直接在proj.linux中可以找到makefile文件,打開文件會看到原始的配置,解決上述編譯問題時直接修改$LOG_LINK中的配置
原始連接如下:
$(LOG_LINK)$(CXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(SHAREDLIBS) $(STATICLIBS)
修改後的如下:
$(LOG_LINK)$(CXX) $(CXXFLAGS) $(OBJECTS) -Wl,--no-as-needed -o $@ $(SHAREDLIBS) $(STATICLIBS)
即增加了 -Wl,--no-as-needed,這兩個關鍵點。
再編譯即正確通過。