cc -lpthread -o apps/swrx/trackerMT apps/swrx/trackerMT.o apps/swrx/simlib.a src/libgpstk.a -lm -lstdc++
apps/swrx/trackerMT.o: In function `RxSim::process()':
trackerMT.cpp:(.text+0x3b4f): undefined reference to `pthread_create'
trackerMT.cpp:(.text+0x3bba): undefined reference to `pthread_join'
A. 在apps/swrx/下找到Jamfile并且将里面的 -lpthread 替换 -pthread即可
原因因为-pthread会在编译和连接两个阶段都加上 -pthread 标志,但是 -pthread 只在连接阶段增加标志。-pthread会在不同平台上进行不同的操作,但都会是pthreads工作。有时省略-pthread可能大致pthreads不能(正常)工作。
B.增加-pthread 到 LINKLIBS 替代 在 LINKFLAGS 增加 -pthread
因为在LINKFLAGS不正确的添加-pthread导致-pthread太早的包含在最终的command line(命令行)中,-pthread会在*。0文件之前使用这个库文件。
关于Jamfile的一些信息将在下一篇博客介绍