Faust Quick ReferenceのChapter 6でfaust2jaqtが出てきますが、以下のようなエラーが出てうまく動きません。
$ cat noise.dsp process = library("music.lib").noise * hslider("level", 0, 0, 1, 0.01); $ faust2jaqt noise.dsp In file included from /usr/include/c++/7/ext/string_conversions.h:41:0, from /usr/include/c++/7/bits/basic_string.h:6159, from /usr/include/c++/7/string:52, from /usr/include/c++/7/bits/locale_classes.h:40, from /usr/include/c++/7/bits/ios_base.h:41, from /usr/include/c++/7/ios:42, from /usr/include/c++/7/ostream:38, from /usr/include/c++/7/iostream:39, from noise.cpp:46: /usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: No such file or directory #include_next <stdlib.h> ^~~~~~~~~~ compilation terminated. make: *** [Makefile:656: noise.o] Error 1
これはQt5.7.1のqmakeがgccのオプションに-isystem /usr/includeを付け加えるのが原因のようです。調べたところvoidlinuxのissue#5254に暫定的な解決策がありました。
Qt5のgcc-base.confを開きます。
sudo nano /usr/lib64/qt5/mkspecs/common/gcc-base.conf
QMAKE_CFLAGS_ISYSTEMの値を-Iに変更します。
#QMAKE_CFLAGS_ISYSTEM = -isystem QMAKE_CFLAGS_ISYSTEM = -I
これでfaust2jaqtが通るようになりました。
faust2jaqt noise.dsp ./noise