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(也称为“Live USB”)是一种便携式的Linux系统部署方式,用户可以通过优盘启动完整的Linux环境,无需安装到硬盘即可体验系统、进行数据恢复或随身携带个人工作环境,以下是详细的制作步骤和注意事项,涵盖工具准备、系统选择、制作流程及后续使用,准备工作在开始制作前,需确保以下材料和工具准……

    2025年10月4日
    800
  • 如何执行Linux U盘启动?详细步骤方法是什么?

    执行Linux U盘启动是许多用户在安装Linux系统、进行数据恢复或体验Linux发行版时的常用操作,其核心原理是将Linux系统镜像写入U盘,使U盘具备引导计算机的能力,整个过程可分为准备工作、制作启动U盘、BIOS/UEFI设置、启动Linux及后续处理几个关键环节,每个环节都需要细致操作以确保成功,准备……

    2025年10月1日
    1000
  • linux如何搭建c语言环境

    Linux系统中,安装GCC编译器即可搭建C语言环境,使用命令sudo apt-get install build-essential(Debian/Ubuntu)

    2025年8月14日
    3500
  • 掌握哪些命令行工具能事半功倍?

    在Linux系统中,查看硬件信息是系统管理、故障排查或性能优化的基础操作,以下详细介绍多种可靠方法,涵盖命令行工具和图形界面方案,所有命令均经过主流Linux发行版(如Ubuntu、CentOS)验证,确保安全性和准确性,lshw(全面硬件概览)功能:列出CPU、内存、磁盘、USB控制器等完整硬件架构,安装与使……

    2025年7月6日
    5400
  • Linux中如何快速移动到行首和行尾?

    在Linux操作中,快速定位到行首和行尾是提升命令行操作和文本编辑效率的核心技能之一,无论是日常命令输入、脚本编写还是代码编辑,掌握不同场景下的行首行尾移动方法,能显著减少光标移动的时间成本,本文将详细解析Linux中常见场景下的行首行尾移动操作,涵盖命令行终端、Vim编辑器、Nano编辑器等工具,并通过表格对……

    2025年10月2日
    5300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信