CentOS启动失败如何解决?

在Linux系统中安装STP(一个用于约束求解的SMT求解器,常用于程序分析和符号执行)需要从源码编译安装,以下是详细步骤,覆盖常见发行版(如Ubuntu/Debian、CentOS/Fedora):


安装依赖项

STP依赖C/C++编译环境、CMake、Python及数学库,根据发行版选择命令:

Ubuntu/Debian

sudo apt update
sudo apt install -y git cmake build-essential cmake libboost-all-dev python3-minimal flex bison

CentOS/Fedora

sudo yum install git cmake3 boost-devel python3 flex bison
# Fedora
sudo dnf groupinstall "Development Tools"
sudo dnf install git cmake boost-devel python3 flex bison

关键依赖说明

  • boost-devel:STP核心算法依赖Boost库。
  • flexbison:解析器生成工具,用于处理STP的输入语言。
  • cmake:管理编译流程。

克隆STP源码

git clone https://github.com/stp/stp.git
cd stp
git checkout master  # 使用稳定分支

配置与编译

通过CMake生成构建配置并编译:

mkdir build && cd build
cmake .. -DBUILD_SHARED_LIBS=OFF -DENABLE_PYTHON_INTERFACE=ON  # 禁用动态库(避免冲突),启用Python接口
make -j$(nproc)  # 使用多核加速编译

参数解释

  • -DBUILD_SHARED_LIBS=OFF:静态链接提高兼容性。
  • -DENABLE_PYTHON_INTERFACE=ON:启用Python API(如需)。

安装与验证

sudo make install  # 默认安装到 /usr/local/bin
ldconfig          # 更新库链接

验证安装

stp --version  # 输出版本信息(如 "STP version 2.3.3")

运行测试用例(可选):

./test/run_tests.sh  # 在build目录内执行

常见问题解决

  • 错误:找不到libboost_python
    创建符号链接(以Ubuntu为例):

    sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python38.so /usr/lib/libboost_python.so
  • CMake报错:缺少依赖
    根据错误提示安装对应包(如zlibopenssl)。

  • Python接口无法导入
    确保编译时启用-DENABLE_PYTHON_INTERFACE=ON,并安装Python开发包(python3-dev)。


卸载STP

进入源码的build目录执行:

sudo make uninstall
rm -rf /usr/local/lib/libstp.a  # 手动清理残留

引用说明

  • STP官方GitHub仓库:https://github.com/stp/stp
  • 编译指南参考:STP官方文档
  • Boost库文档:https://www.boost.org/

提示:建议定期更新源码(git pull)以获取修复,遇到问题优先查阅GitHub Issues。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5999.html

(0)
酷番叔酷番叔
上一篇 2025年7月1日 18:16
下一篇 2025年7月1日 19:02

相关推荐

  • Linux如何正确挂载光盘镜像文件?操作步骤与方法是什么?

    在Linux系统中,挂载光盘镜像(如ISO、IMG等格式)是常见的操作,主要用于访问镜像中的文件、安装系统或软件,以下是详细的挂载步骤及注意事项,帮助用户顺利完成操作,准备工作确认镜像文件存在首先确保光盘镜像文件已存在于系统中,通常位于用户目录(如/home/user/Downloads/)或指定路径,镜像文件……

    2025年9月16日
    10600
  • 电脑如何仅装Linux系统文件夹?

    将电脑仅安装Linux系统的文件夹结构,本质是完全部署Linux操作系统,摒弃其他系统(如Windows),实现基于Linux原生文件环境的纯净使用,这一过程涉及系统选择、安装准备、分区规划、系统配置及文件结构理解等环节,以下为详细步骤和说明,前期准备工作选择Linux发行版Linux发行版众多,需根据需求选择……

    2025年10月8日
    9300
  • linux如何查询硬件信息

    在Linux系统中,查询硬件信息是系统管理和故障排查的基础操作,通过命令行工具可以快速获取CPU、内存、存储、显卡等各类硬件的详细信息,以下将介绍常用命令及其使用方法,帮助用户全面掌握硬件信息查询技巧,CPU信息查询CPU作为系统的核心,其信息包括型号、核心数、线程数、架构等,可通过以下命令查看:lscpu:以……

    2025年9月21日
    10200
  • 如何用PE给电脑安装Linux系统并备份?

    使用PE(Preinstallation Environment)给电脑安装Linux系统并进行备份,是一种灵活且高效的方式,尤其适合需要在原系统基础上保留数据或进行多系统管理的用户,以下是详细操作步骤,涵盖准备工作、系统安装、备份方法及注意事项,准备工作在开始操作前,需确保工具齐全且数据安全,具体清单如下(可……

    2025年9月19日
    9800
  • 怎样在Linux系统中查看CPU型号?

    使用 lscpu 命令(推荐)步骤:lscpu | grep "Model name"输出示例:Model name: Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz解读:直接显示CPU型号、品牌及主频,lscpu 汇总了CPU架构、核心数、线程数等完整信……

    2025年7月4日
    12500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信