Linux下多线程使用undefined reference to ‘pthread_create’问题解决
Linux下多线程使用undefined reference to ‘pthread_create’问题解决
问题:出现“undefined reference to ‘pthread_create’”,所有关于线程的函数都会有此错误,导致无法编译通过。
问题的原因:pthread不是Linux下的默认的库,也就是在链接的时候,无法找到phread库中哥函数的入口地址,于是链接会失败。
解决:
1. 在gcc编译的时候,附加要加 -lpthread参数即可解决。
eg:gcc rwlock.c -g -lpthread
- QT端:
在.Pro添加
LIBS += /usr/lib/i386-linux-gnu/libpthread.so
在调用ChDriverLinuxFR中
unix:!macx: LIBS += -LPWD/../../../../../../../usr/arm-linux-gnueabihf/lib/ -lpthread
INCLUDEPATH +=PWD/../../../../../../../usr/arm-linux-gnueabihf/include
DEPENDPATH += PWD/../../../../../../../usr/arm-linux-gnueabihf/include
unix:!macx: PRE_TARGETDEPS +=PWD/../../../../../../../usr/arm-linux-gnueabihf/lib/libpthread.a