obs-vst icon indicating copy to clipboard operation
obs-vst copied to clipboard

compilation error when OBS Studio configured with option -DUSE_LIBC++=ON

Open ludocosmo opened this issue 5 years ago • 0 comments

On Ubuntu, configure OBS Studio to use LLVM libc++ and clang for compilation:

export CC=clang
export CXX=clang++
cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_LIBC++=ON ..
make -j4
[ 43%] Building CXX object plugins/obs-vst/CMakeFiles/obs-vst.dir/linux/VSTPlugin-linux.cpp.o
/home/ludo/cosmo/git/obs-test/plugins/obs-vst/linux/VSTPlugin-linux.cpp:32:8: error: use of undeclared identifier 'errno'
                     errno);

Platform

Operating system and version: Ubuntu 20.04, clang 10 OBS Studio version: https://github.com/obsproject/obs-studio master branch tag 20fb235b8fe86284fcd0de7848a76056b0771228

Expected Behavior

Compilation should succeed.

Current Behavior

Compilation error:

[ 43%] Building CXX object plugins/obs-vst/CMakeFiles/obs-vst.dir/linux/VSTPlugin-linux.cpp.o
/home/ludo/cosmo/git/obs-test/plugins/obs-vst/linux/VSTPlugin-linux.cpp:32:8: error: use of undeclared identifier 'errno'
                     errno);

Steps to Reproduce

Configure OBS Studio to be compiled with LLVM libc++ and clang:

export CC=clang
export CXX=clang++
mkdir BUILD
cd BUILD
cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_LIBC++=ON ..
make -j4
[ 43%] Building CXX object plugins/obs-vst/CMakeFiles/obs-vst.dir/linux/VSTPlugin-linux.cpp.o
/home/ludo/cosmo/git/obs-test/plugins/obs-vst/linux/VSTPlugin-linux.cpp:32:8: error: use of undeclared identifier 'errno'
                     errno);

Additional information

When compiling OBS Studio with libstdc++, include of <string> from obs-vst/VSTPlugin.h will in the end make an include of <errno.h> which contains a #define errno But when using LLVM libc++, the list of include files included from <string> does not contain <errno.h>. So errno is not defined and the compilation fails.

A simple #include <cerrno> in file linux/VSTPlugin-linux.cpp is able to fix the problem.

ludocosmo avatar Dec 28 '20 02:12 ludocosmo