synergy won't compile -- undefined reference to `pthread_xxxx
c++, cmake, ubuntu
Solution
SOLUTION: manually change the order of the contents of /synergy-1.4.15-Source/src/cmd/synergyd/CMakeFiles/synergyd.dir/link.txt to put -lpthread contents last.
Problem
When following the build instructions for Synergy, I get the following errors. Is there an already-developed solution to get Synergy to build? If not, how do I get Synergy to compile on Ubuntu 13.10? ``` ../../../../../lib/libarch.a(CArchMultithreadPosix.o): In function `CArchMultithreadPosix::newMutex()': CArchMultithreadPosix.cpp:(.text+0x319): undefined reference to `pthread_mutexattr_init' ../../../../../lib/libarch.a(CArchMultithreadPosix.o): In function `CArchMultithreadPosix::raiseSignal(IArchMultithread::ESignal)': CArchMultithreadPosix.cpp:(.text+0x43b): undefined reference to `pthread_kill' ../../../../../lib/libarch.a(CArchMultithreadPosix.o): In function `CArchMultithreadPosix::threadSignalHandler(void*)': CArchMultithreadPosix.cpp:(.text+0x490): undefined reference to `pthread_detach' ../../../../../lib/libarch.a(CArchMultithreadPosix.o): In function `CArchMultithreadPosix::closeThread(CArchThreadImpl*)': CArchMultithreadPosix.cpp:(.text+0x62b): undefined reference to `pthread_detach' ../../../../../lib/libarch.a(CArchMultithreadPosix.o): In function `CArchMultithreadPosix::newThread(void* (*)(void*), void*)': CArchMultithreadPosix.cpp:(.text+0x8e6): undefined reference to `pthread_sigmask' CArchMultithreadPosix.cpp:(.text+0x90f): undefined reference to `pthread_sigmask' CArchMultithreadPosix.cpp:(.text+0x935): undefined reference to `pthread_create' CArchMultithreadPosix.cpp:(.text+0x9a4): undefined reference to `pthread_create' ../../../../../lib/libarch.a(CArchMultithreadPosix.o): In function `CArchMultithreadPosix::CArchMultithreadPosix()': CArchMultithreadPosix.cpp:(.text+0xe11): undefined reference to `pthread_mutexattr_init' CArchMultithreadPosix.cpp:(.text+0xf05): undefined reference to `pthread_sigmask' CArchMultithreadPosix.cpp:(.text+0xf26): undefined reference to `pthread_sigmask' ../../../../../lib/libarch.a(CArchMultithreadPosix.o): In function `CArchMultithreadPosix::startSignalHandler()': CArchMultithreadPosix.cpp:(.text+0x10a8): undefined reference to `pthread_sigmask' CArchMultithreadPosix.cpp:(.text+0x10cd): undefined reference to `pthread_sigmask' CArchMultithreadPosix.cpp:(.text+0x1104): undefined reference to `pthread_create' ../../../../../lib/libarch.a(CArchMultithreadPosix.o): In function `CArchMultithreadPosix::cancelThread(CArchThreadImpl*)': CArchMultithreadPosix.cpp:(.text+0x5e3): undefined reference to `pthread_kill' collect2: error: ld returned 1 exit status make[2]: *** [../../bin/synergyd] Error 1 make[1]: *** [src/cmd/synergyd/CMakeFiles/synergyd.dir/all] Error 2 make: *** [all] Error 2 Going back to: /usr/local/src/synergy-1.4.15-Source Error: make failed: 512 ```