在公司的新机器上装一个需要编译的库的时候,报错了,直接百度到解决方法
sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev
说是缺少库,但是真的不建议直接这么一通乱装,装完可能会导致一些库和现有的程序有版本上的冲突。
又百度了一波:主要是机器是新的,linux中的一些头文件没有,x86_64-linux-gnu-gcc
就是一个。
先装python3.x-dev就完事了(x是对应你自己的python版本哦。)
linux发行版通常会把类库的头文件和相关的pkg-config分拆成一个单独的xxx-dev(el)包.
以python为例, 以下情况你是需要python-dev的
你需要自己安装一个源外的python类库, 而这个类库内含需要编译的调用python api的c/c++文件
你自己写的一个程序编译需要链接libpythonXX.(a|so)
(注:以上不含使用ctypes/ffi或者裸dlsym方式直接调用libpython.so)
其他正常使用python或者通过安装源内的python类库的不需要python-dev.(我这时候编译c/c++文件就需要啦)
python-dev的包在centos的yum中不叫python-dev,而是python-devel.
1.python-dev或python-devel
python-dev或python-devel称为是python的开发包,
其中包括了一些用C/Java/C#等编写的python扩展在编译的时候依赖的头文件等信息。
比如我们在编译一个用C语言编写的python扩展模块时,因为里面会有#include
2.各种.devel开发包*
linux编程中,还会遇到各种*-devel开发包,例如mysql-devel、libgtk±devel等等。
-devel开发包中主要包括一些头文件和静态链接库。任何-devel包基本都是这样。
备注:
注意python-dev或者其他*.devel软件一般都是C语言编写的一些头文件或cpp文件,
往往是其他模块或这我们自己写的模块在编译时,需要依赖这些*-devel软件包
部分文章出处:找不到源头····