Вам нужно создать функцию без параметров, которые вы можете использовать в качестве команды:
b = Button(admin, text='as', command=lambda: button('hey'))
См. раздел «Передача аргументов в обратные вызовы» в этом документе .
На Unix как системы ld и утилиты площади могут сделать это. Выезд http://en.wikipedia.org/wiki/Ar_ (Unix) или поиск страницы справочника на любом поле Linux или через Google, например, 'площадь человека Unix'
Обратите внимание на то, что Вы могли бы быть более обеспеченным соединением с общей (динамической) библиотекой. Это добавило бы зависимость к Вашему исполняемому файлу, но существенно уменьшит его размер, особенно если Вы пишете графическое приложение.
Вы могли извлечь объектные файлы из каждой библиотеки с
ar x <library name>
и затем объединить их всех в новую библиотеку с
ar cs <new library name> <list each extracted object file>
Возможно, я неправильно понимаю, но необходимо не только поставить освобождение, если код конечного пользователя называет их непосредственно? Если весь доступ к методам Jpeg и т.д. от Вашего кода в Вашей статической библиотеке, то просто связывают освобождение в Ваш lib.
Т.е.
----------------
| End-user exe |
----------------
|
| makes calls to
|
v
--------------------
| Your static lib.a |
--------------------
| makes calls to and links
v
------------------------------------ .....
| | |
------------- -------- ----------
| libjpeg.a | |libz.a| |libpng.a|
------------- -------- ----------
Т.е. это - только проблема, если код конца должен выполнить прямые вызовы в libz.a, libpng.a и т.д.
, Если код приложения имеет законную потребность назвать libz.a, например, то это было бы, как упомянуто выше быть случаем для использования динамического модуля.
пз: я получаю значок художников?:)
Я не уверен, как физически объединить их в единственный файл, однако Вы могли использовать в некотором роде абстракцию и просто включать единственный "AllMyLibs.a/h", который в свою очередь включает все, что Вы хотите. Вы могли также поместить это в местоположение, где Ваш компилятор ищет библиотеки, таким образом, это работало бы на любой проект.
P.S. - из любопытства, почему Вам не нравится включая единственный, освобождает?
Объединение нескольких сторонних библиотек в можно было создать больше проблем для Вас - например, если две из тех библиотек определяют обычный символ, который не использует Ваша программа. Теперь необходимо извлечь все (или all-one) экземпляров обычного символа перед объединением библиотек.