Как вы связываетесь со сторонними библиотеками при использовании плагина scons-qt4? - PullRequest
0 голосов
/ 21 февраля 2011

Я использую плагин scons-qt для сборки и связи с Qt.Я должен создать набор исполняемых файлов, которые ссылаются на мою собственную библиотеку.Также библиотека должна ссылаться на некоторые сторонние библиотеки, кроме Qt.Итак, в библиотеке SConscript я пишу:

env.SharedLibrary ('proverim', Glob ('*.cc'), LIBS = Split ('sane quazip'))

А для исполняемого файла:

env.Program ('PCorrect', Glob ('*.cc'), LIBS = ['proverim'])

Но я получаю много ошибок компоновки - очевидно, это отключает все -lQtCore -Переключатели lQtGui и т. д., которые обычно генерирует плагин scons-qt.Если я удаляю LIBS из этой строки SharedLibrary и помещаю все ссылки в исполняемый файл, например:

env.Program ('PCorrect', Glob ('*.cc'), LIBS = Split ('proverim sane quazip'))

Все работает нормально - ссылки libproverim с Qt и ссылки на ПК с libproverim, а также со сторонними библиотеками,Но у меня есть ощущение, что должен быть правильный способ сделать это.Кроме того, что бы я сделал, если бы мне не нужно было создавать отдельную библиотеку?Итак, как добавить другие библиотеки для компоновки при работе с плагином scons-qt?

1 Ответ

2 голосов
/ 22 февраля 2011

Ожидаемое вами поведение.Написав

env.Program ('PCorrect', Glob ('*.cc'), LIBS = ['proverim'])

или

env['LIBS'] = ['proverim']

, вы полностью перезаписываете LIBS, которые могли быть установлены qt4.py в методе EnableQt4Modules ().

Что вывместо этого я хочу добавить ваши библиотеки в Qt4.Пожалуйста, используйте метод Append () для этого:

env.Append(LIBS=['proverim'])
env.Program('PCorrect', Glob('*.cc'))

Наконец, я хотел бы отметить, что это базовая функциональность в SCons (пожалуйста, проверьте страницу Man и руководство для получения дополнительной информации) и не имеет прямого отношения кинструмент Qt4 ...;)

...