解决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,这两个关键点。
再编译即正确通过。