【发布时间】:2010-05-31 20:37:25
【问题描述】:
我正在尝试构建一个我下载的应用程序,该应用程序使用 SCONS“make replacement”和 Fast Light Tool Kit Gui。
检测fltk存在的SConstruct代码是:
guienv = Environment(CPPFLAGS = '')
guiconf = Configure(guienv)
if not guiconf.CheckLibWithHeader('lo', 'lo/lo.h','c'):
print 'Did not find liblo for OSC, exiting!'
Exit(1)
if not guiconf.CheckLibWithHeader('fltk', 'FL/Fl.H','c++'):
print 'Did not find FLTK for the gui, exiting!'
Exit(1)
不幸的是,在我的(Gentoo Linux)系统和许多其他(Linux 发行版)上,如果包管理器允许同时安装 FLTK-1 和 FLTK-2,这可能会很麻烦。
我尝试修改 SConstruct 文件以使用 fltk-config --cflags 和 fltk-config --ldflags(或 fltk-config --libs 可能比 ldflags 更好),方法是像这样添加它们:
guienv.Append(CPPPATH = os.popen('fltk-config --cflags').read())
guienv.Append(LIBPATH = os.popen('fltk-config --ldflags').read())
但这会导致 liblo 的测试失败!查看config.log 显示它是如何失败的:
scons: Configure: Checking for C library lo...
gcc -o .sconf_temp/conftest_4.o -c "-I/usr/include/fltk-1.1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT"
gcc: no input files
scons: Configure: no
这应该怎么做?
为了完成我的回答,如何从os.popen( 'command').read() 的结果中删除引号?
编辑这里真正的问题是为什么附加fltk-config 的输出会导致gcc 没有收到它应该编译的文件名参数?
【问题讨论】: