$ uname -a
Linux localhost 4.4.32-040432-generic #201611150347 SMP Tue Nov 15 08:49:14 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ gcc --version | head -n 1
gcc (Ubuntu 5.4.1-2ubuntu2) 5.4.1 20160929
$ make
rm -f *~ svm.o svm_par.o svm-train-par svm-predict-par svm-train svm-predict svm-scale libsvm.so.2
g++ -Wall -Wconversion -O3 -std=c++11 -c svm_par.cpp
g++ -Wall -Wconversion -O3 -std=c++11 svm-train.c svm_par.o -o svm-train-par -lm
svm_par.o: In function `Solver::Solve(int, QMatrix const&, double const*, signed char const*, double*, double, double, double, Solver::SolutionInfo*, int) [clone .constprop.114]':
svm_par.cpp:(.text+0x67e1): undefined reference to `pthread_create'
svm_par.o: In function `SvmThreads::getInstance()':
svm_par.cpp:(.text._ZN10SvmThreads11getInstanceEv[_ZN10SvmThreads11getInstanceEv]+0x3fb): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
Makefile:23: recipe for target 'svm-train-par' failed
make: *** [svm-train-par] Error 1
$ make
rm -f *~ svm.o svm_par.o svm-train-par svm-predict-par svm-train svm-predict svm-scale libsvm.so.2
g++ -Wall -Wconversion -O3 -std=c++11 -pthread -c svm_par.cpp
g++ -Wall -Wconversion -O3 -std=c++11 -pthread svm-train.c svm_par.o -o svm-train-par -lm
g++ -Wall -Wconversion -O3 -std=c++11 -pthread -c svm.cpp
g++ -Wall -Wconversion -O3 -std=c++11 -pthread svm-train.c svm.o -o svm-train -lm
g++ -Wall -Wconversion -O3 -std=c++11 -pthread svm-predict.c svm.o -o svm-predict -lm
g++ -Wall -Wconversion -O3 -std=c++11 -pthread svm-predict.c svm_par.o -o svm-predict-par -lm
g++ -Wall -Wconversion -O3 -std=c++11 -pthread svm-scale.c -o svm-scale
when I add
-pthreadtoCFLAGSin theMakefile, compilation succeeds