我正在尝试在我的Fedora 21系统上构建对接(https://sourceforge.net/projects/butt)。
作者应该使用默认的构建链。
所以我做了一个:
./configure
然后尝试了
make
但这失败了:
[root@sven butt-0.1.14]# make
make all-recursive
make[1]: Entering directory '/home/sven/Downloads/butt-0.1.14'
Making all in src
make[2]: Entering directory '/home/sven/Downloads/butt-0.1.14/src'
depbase=`echo butt.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT butt.o -MD -MP -MF $depbase.Tpo -c -o butt.o butt.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo cfg.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT cfg.o -MD -MP -MF $depbase.Tpo -c -o cfg.o cfg.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo icecast.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT icecast.o -MD -MP -MF $depbase.Tpo -c -o icecast.o icecast.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo lame_encode.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT lame_encode.o -MD -MP -MF $depbase.Tpo -c -o lame_encode.o lame_encode.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo parseconfig.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT parseconfig.o -MD -MP -MF $depbase.Tpo -c -o parseconfig.o parseconfig.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo port_audio.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT port_audio.o -MD -MP -MF $depbase.Tpo -c -o port_audio.o port_audio.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ringbuffer.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT ringbuffer.o -MD -MP -MF $depbase.Tpo -c -o ringbuffer.o ringbuffer.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo shoutcast.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT shoutcast.o -MD -MP -MF $depbase.Tpo -c -o shoutcast.o shoutcast.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo sockfuncs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT sockfuncs.o -MD -MP -MF $depbase.Tpo -c -o sockfuncs.o sockfuncs.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo strfuncs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT strfuncs.o -MD -MP -MF $depbase.Tpo -c -o strfuncs.o strfuncs.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo timer.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT timer.o -MD -MP -MF $depbase.Tpo -c -o timer.o timer.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo util.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT util.o -MD -MP -MF $depbase.Tpo -c -o util.o util.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo vorbis_encode.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT vorbis_encode.o -MD -MP -MF $depbase.Tpo -c -o vorbis_encode.o vorbis_encode.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo vu_meter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT vu_meter.o -MD -MP -MF $depbase.Tpo -c -o vu_meter.o vu_meter.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo wav_header.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT wav_header.o -MD -MP -MF $depbase.Tpo -c -o wav_header.o wav_header.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo opus_encode.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT opus_encode.o -MD -MP -MF $depbase.Tpo -c -o opus_encode.o opus_encode.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo flac_encode.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT flac_encode.o -MD -MP -MF $depbase.Tpo -c -o flac_encode.o flac_encode.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo FLTK/Fl_ILM216.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT FLTK/Fl_ILM216.o -MD -MP -MF $depbase.Tpo -c -o FLTK/Fl_ILM216.o FLTK/Fl_ILM216.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo FLTK/fl_callbacks.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT FLTK/fl_callbacks.o -MD -MP -MF $depbase.Tpo -c -o FLTK/fl_callbacks.o FLTK/fl_callbacks.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo FLTK/fl_funcs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT FLTK/fl_funcs.o -MD -MP -MF $depbase.Tpo -c -o FLTK/fl_funcs.o FLTK/fl_funcs.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo FLTK/flgui.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT FLTK/flgui.o -MD -MP -MF $depbase.Tpo -c -o FLTK/flgui.o FLTK/flgui.cpp &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo FLTK/Fl_My_Native_File_Chooser.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT FLTK/Fl_My_Native_File_Chooser.o -MD -MP -MF $depbase.Tpo -c -o FLTK/Fl_My_Native_File_Chooser.o FLTK/Fl_My_Native_File_Chooser.cxx &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo FLTK/fl_timer_funcs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -IFLTK -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -MT FLTK/fl_timer_funcs.o -MD -MP -MF $depbase.Tpo -c -o FLTK/fl_timer_funcs.o FLTK/fl_timer_funcs.cpp &&\
mv -f $depbase.Tpo $depbase.Po
g++ -g -O2 -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -L/usr/local/lib -o butt butt.o cfg.o icecast.o lame_encode.o parseconfig.o port_audio.o ringbuffer.o shoutcast.o sockfuncs.o strfuncs.o timer.o util.o vorbis_encode.o vu_meter.o wav_header.o opus_encode.o flac_encode.o FLTK/Fl_ILM216.o FLTK/fl_callbacks.o FLTK/fl_funcs.o FLTK/flgui.o FLTK/Fl_My_Native_File_Chooser.o FLTK/fl_timer_funcs.o -lsamplerate -lpthread -lportaudio -lFLAC -lmp3lame -lopus -lvorbisenc -lvorbis -logg -lfltk_images -lfltk
/bin/ld: FLTK/Fl_My_Native_File_Chooser.o: undefined reference to symbol 'XNextEvent'
/lib64/libX11.so.6: error adding symbols: DSO missing from command line
collect2: Fehler: ld gab 1 als Ende-Status zurück
Makefile:294: recipe for target 'butt' failed
make[2]: *** [butt] Error 1
make[2]: Leaving directory '/home/sven/Downloads/butt-0.1.14/src'
Makefile:354: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/sven/Downloads/butt-0.1.14'
Makefile:294: recipe for target 'all' failed
make: *** [all] Error 2
[root@sven butt-0.1.14]
有人可以帮忙吗?
提前致谢。
答案 0 :(得分:3)
将-lX11
添加到 src / Makefile
LIBS
行
该行应如下所示:
LIBS = -lX11 -lsamplerate -lpthread -lportaudio -lFLAC -lmp3lame -lopus -lvorbisenc -lvorbis -logg -lX11 -lfltk_images -lfltk