1. 程式人生 > >linux下開發,解決cocos2d-x中編譯出現的一個小問題, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'

linux下開發,解決cocos2d-x中編譯出現的一個小問題, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'

water span x86 code bject data- ace 技術分享 inux

解決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,這兩個關鍵點。

再編譯即正確通過。

技術分享


linux下開發,解決cocos2d-x中編譯出現的一個小問題, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'