vim - Vim 动态链接依赖项未通过 ldd 列出
问题描述
成功从源安装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
应该列出一些东西,为什么这里什么都没有显示?
解决方案
当您使用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,它是在编译时指定的。
推荐阅读
- bootstrap-4 - Bootstrap 下拉菜单添加水平滚动
- google-chrome-extension - 如何区分弹出窗口是从普通选项卡还是从 chrome 扩展打开的?
- leaflet - 我们可以下载 OSM 地图图块并将其用于商业产品吗
- bots - Luis 实体已识别,但未返回
- python - Python:对象没有属性错误:数组
- github - 为什么任何项目上的 git push 都会触发 Google Cloud Build(GitHub 应用程序)中的构建?
- node.js - node.js elasticsearch API查询搜索请求发送POST方法而不是GET
- mongodb - Model.find 不是猫鼬中的功能
- ruby-on-rails - 如何获取分组对象的详细信息
- angular - 在 Angular 中处理编辑模式的图像