我正在使用scons-qt插件来构建和链接Qt。我必须构建一组链接到我自己的库的可执行文件。此外,图书馆必须链接到Qt旁边的一些第三方库。所以,在库的SConscript中我写道:
env.SharedLibrary ('proverim', Glob ('*.cc'), LIBS = Split ('sane quazip'))
对于可执行文件:
env.Program ('PCorrect', Glob ('*.cc'), LIBS = ['proverim'])
但是我收到很多链接错误 - 显然这会禁用所有-sQtCore -lQtGui等开关scons-qt插件通常生成的。如果我从SharedLibrary行中删除LIBS并将所有链接放入可执行文件中,例如:
env.Program ('PCorrect', Glob ('*.cc'), LIBS = Split ('proverim sane quazip'))
一切正常 - libproverim与libproverim的Qt和PCorrect链接以及第三方库链接。但我觉得必须有一个正确的方法来做到这一点。此外,如果我不需要建立一个单独的库,我该怎么办?那么,在使用scons-qt插件时,如何添加其他库以进行链接?
答案 0 :(得分:2)
您看到的行为是预期的。通过写作
env.Program ('PCorrect', Glob ('*.cc'), LIBS = ['proverim'])
或
env['LIBS'] = ['proverim']
您完全覆盖了可能由EnableQt4Modules()方法中的qt4.py设置的LIBS。
你要做的是将你的库添加到Qt4的东西。请使用Append()方法:
env.Append(LIBS=['proverim'])
env.Program('PCorrect', Glob('*.cc'))
最后,我想提一下这是SCons的一个基本功能(请查看手册页和手册以获取更多信息)并且与Qt4工具没有直接关系......;)