1. ./configure
-
作用:这是一个脚本,用于检测系统环境并生成
Makefile
文件。它会检查系统是否具备编译所需的工具(如 C 编译器)和依赖项。 -
参数:可以通过在
./configure
后添加参数来控制安装行为,例如:-
--prefix=/usr
:指定软件安装的根目录。 -
--with
、--enable
等参数:用于启用或禁用某些功能。
-
-
结果:生成一个适合当前系统的
Makefile
文件。
2. make
-
作用:根据
Makefile
文件中的指令,编译源代码生成可执行文件。 -
依赖:需要一个由
./configure
生成的Makefile
文件。 -
结果:生成编译后的二进制文件。
3. make install
-
作用:将编译后的文件安装到系统指定位置。
-
权限:通常需要
root
权限,因为需要向系统目录写入文件。 -
结果:将程序的可执行文件、库文件和文档等安装到系统中。
4.protoc: error while loading shared libraries: libprotoc.so.32: cannot open shared object file: No such file or directory
1. 检查动态库是否存在
首先,确认系统中是否已经安装了 libprotoc.so.32
文件。可以通过以下命令查找:
sudo find / -name libprotoc.so.32
如果找到了该文件,记录下它的路径。
2. 更新动态库路径
如果找到了 libprotoc.so.32
,但程序仍然无法加载它,可能是因为动态库的路径没有被系统识别。可以通过以下方法解决:
-
编辑
/etc/ld.so.conf
文件:将动态库所在的路径添加到/etc/ld.so.conf
文件中。例如,如果libprotoc.so.32
在/usr/local/lib
目录下,可以执行以下命令:sudo vim /etc/ld.so.conf
在文件中添加以下内容:
/usr/local/lib
保存并退出后,运行以下命令使配置生效:(手动更新动态库缓存)
sudo ldconfig
3. 验证
运行以下命令检查动态库是否被正确加载:
ldd $(which protoc)