roc-streaming / roc-toolkit

Real-time audio streaming over the network.
https://roc-streaming.org
Mozilla Public License 2.0
1.06k stars 213 forks source link

Error in making libsnd-file while downloading all dependencies #266

Closed hrishikeshSuresh closed 5 years ago

hrishikeshSuresh commented 5 years ago

When I ran, $ scons -Q --build-3rdparty=all I got this error,

GET   3rdparty/x86_64-pc-linux-gnu/clang-3.8.0-release/build/sndfile-1.0.20
[download] http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.20.tar.gz
[extract] libsndfile-1.0.20.tar.gz
[execute] ./configure --host= CXX=/usr/bin/clang++-3.8 CXXLD=/usr/bin/clang++-3.8 CC=/usr/bin/clang-3.8 CCLD=/usr/bin/clang-3.8 AR=/usr/bin/llvm-ar RANLIB=/usr/bin/llvm-ranlib CXXFLAGS="-fPIC -fvisibility=hidden" CFLAGS="-fPIC -fvisibility=hidden" LDFLAGS="" --enable-static --disable-shared --disable-external-libs
[execute] make -j
scons: *** Error 1
error: can't make 'sndfile-1.0.20', see '3rdparty/x86_64-pc-linux-gnu/clang-3.8.0-release/build/sndfile-1.0.20/build.log' for details

When I checked 3rdparty/x86_64-pc-linux-gnu/clang-3.8.0-release/build/sndfile-1.0.20/build.log ,

/usr/bin/ld: sndfile_jackplay-sndfile-jackplay.o: 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
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:382: recipe for target 'sndfile-jackplay' failed
make[1]: *** [sndfile-jackplay] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:358: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

I fixed this by adding pthread flag in the execute() for libsnd-file part in 3rdparty.py,


 ..
        makeflags(workdir, toolchain, [], cflags='-fPIC -fvisibility=hidden -pthread'),
 ..