Динамическая связанная зависимость Vim не указана через ldd - PullRequest
1 голос
/ 12 октября 2019

Успешная установка vim из источника

$ git clone https://github.com/vim/vim && cd vim
$ ./configure --prefix=/usr/local --enable-gui=no --enable-python3interp=dynamic
$ make CFLAGS='-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1'
$ sudo make install

Проверка подключаемого модуля в python3 успешно

python3 << EOF
print("Hello, Python3!")
EOF

Проверьте, * python3 динамически связана

$ /usr/local/bin/vim --version
+python3/dyna
$ ll -h /usr/local/bin/vim
2.6M
$ ldconfig -p | grep python3
libpython3
$ ldd /usr/local/bin/vim | grep python
(nothing)

Что-то libpython3 должно быть в списке, почему здесь ничего не появляется?

1 Ответ

2 голосов
/ 14 октября 2019

Когда вы используете dynamic библиотека не связана, она загружается двоичным файлом vim при первом использовании, используя dlopen(). От :help python-dynamic:

В MS-Windows и Unix библиотека Python может загружаться динамически. Выходные данные: version включают в себя + python / dyn или + python3 / dyn.

Это означает, что Vim будет искать файл Python DLL или разделяемой библиотеки только при необходимости. Если вы не используете интерфейс Python, он вам не нужен, поэтому вы можете использовать Vim без этого файла.

...

Опция 'pythondll' или 'pythonthreedll' можетиспользоваться для указания файла общей библиотеки Python ...

и :help 'pythonthreedll':

Указывает имя общей библиотеки Python 3. По умолчанию используется значение DYNAMIC_PYTHON3_DLL, которое было указано во время компиляции.

...