On Mon, Apr 16, 2012 at 09:01:21AM +0400, Vitaly Kuznetsov wrote: > On Sun, 15 Apr 2012 20:13:37 +0400, Yuri N. Sedunov wrote: [...] > >И здесь надо исправить. > >$ python-config --ldflags > >-L/usr/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 > >-Xlinker -export-dynamic > > Не нравится -l или -L? Или обе? :) Тут много чего не нравится. -L не нужен просто потому, что в /usr/lib/python2.7/config нет никаких библиотек. -lpthread -ldl -lutil -lm -lpython2.7 не нравится, потому что --ldflags это не --libs. Но это именно не нравится, эти лишние -L и -l хотя бы ничего не ломают. > Захакать, конечно, можно, но от этого > могут сломаться те, кому действительно > надо линковаться с libpython. В debian, чей > подход к сборке python мы в том или ином виде > пытаемся повторить Не понимаю, зачем мы пытаемся этот подход повторить. Он, в отличие от традиционного, будет постоянно создавать нам проблемы. > в /usr/lib{,64}/python2.x/config/ лежат: > файлы пакета python-dev: > libpython2.x.a > libpython2.x-pic.a > файл пакета libpython: > libpython2.x.so -> ../../libpython2.x.so.1 У нас всего этого нагромождения нет, и не надо. > python-config --ldflags: > -L/usr/lib/python2.x/config -lpthread -ldl -lutil -lm -lpython2.x > > В python-config логика следующая: > libs = getvar('LIBS').split() + getvar('SYSLIBS').split() > libs.append('-lpython'+pyver) > # add the prefix/lib/pythonX.Y/config dir, but only if there is > no > # shared library in prefix/lib/. > if opt == '--ldflags': > if not getvar('Py_ENABLE_SHARED'): > libs.insert(0, '-L' + getvar('LIBPL')) > libs.extend(getvar('LINKFORSHARED').split()) > print ' '.join(libs) > > т.е. -lpython2.x добавляется всегда, > -L/usr/lib{,64}/python2.x/config добавляется в случае > статической линковки интерпретатора с > libpython. У нас, насколько я понимаю, > пользователей статической libpython2.x.a нет, У нас есть python-devel-static, и его для потенциальных пользователей libpython2.7.a вполне достаточно. -- ldv