当前位置: 首页 > news >正文

源码编译perl5遇到的问题汇总

目录

问题汇总

1 如何生成libperl.so?

2 如何处理invalid use of undefined type ‘struct pollfd’

解决方案

1 从官网Perl Source - www.cpan.org下载perl源码。

2 解压

3 进入解压后的文件夹perl-5.22.4

4 取决于你想安装perl还是libperl.so,如下命令二选一:

4.1 安装perl

4.2 安装libperl.so

5 make

6 sudo make install

7 制造软链接


某些linux发行版预装了perl,但是没有安装libperl.so。一个解决办法是安装libperl-dev。但是前面的博客里我说了,我不喜欢把安装完全交给apt-get这样的工具。所以这里介绍我用源码安装perl的全过程,及常见问题。

问题汇总

1 如何生成libperl.so?

2 如何处理invalid use of undefined type ‘struct pollfd’

解决方案

1 从官网Perl Source - www.cpan.org下载perl源码。

这里我选择5.22.4

2 解压

3 进入解压后的文件夹perl-5.22.4

4 取决于你想安装perl还是libperl.so,如下命令二选一:

4.1 安装perl

注意,Configure首字母大写

./Configure -des -Dprefix=$HOME/localperl

4.2 安装libperl.so

(来源Install - Build and Installation guide for perl5.)

./Configure -des -Dprefix=$HOME/localperl -Duseshrplib

 这一步之后,一定要修改LD_LIBRARY_PATH

LD_LIBRARY_PATH='源码解压后的目录':$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

5 make

安装过程里很可能会出现如下问题:

invalid use of undefined type ‘struct pollfd’

 根据redhat - Make error when compiling Perl 5.12.1 (RHEL 5.5) - Server Fault的说法:

 要把perl源码/dist/IO/poll.h的包括头文件<poll.h>改为<sys/poll.h>

重新make

6 sudo make install

7 制造软链接

上一步生成的so文件位于localperl/lib/5.22.4/x86_64-linux/CORE

在/usr/lib中建立一个软链接指向它:

ln -s xxxx/xx/libperl.so /usr/lib 

相关文章:

  • 63 岁老工程师设计一屏双计算器软件工具,一起看看?
  • python实现自动换桌面壁纸恶搞程序【带源码】--------- 2.程序调试和打包
  • 抛开去中心化叙事 我们需要DAO的4个理由
  • 【Android入门】5、Broadcast 广播、Kotlin 的高阶函数、泛型、委托
  • clickhouse
  • 【周赛复盘】力扣第 312 场单周赛
  • QT通过QSS文件样式表设置改变窗体与按钮背景外观
  • kotlin基础知识
  • Keras学习记录之模型
  • LeetCode 0329. 矩阵中的最长递增路径
  • JavaEE:线程安全问题的原因和解决方案
  • Linux/CentOS 安装 flutter 与 jenkins 构建 (踩坑)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • 随想录一期 day4 [24. 两两交换链表中的节点|19. 删除链表的倒数第 N 个结点|面试题 02.07. 链表相交|142. 环形链表 II]
  • iOS动画相关
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • [nginx文档翻译系列] 控制nginx
  • CSS相对定位
  • javascript数组去重/查找/插入/删除
  • java多线程
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • PHP的Ev教程三(Periodic watcher)
  • React 快速上手 - 07 前端路由 react-router
  • 产品三维模型在线预览
  • 分布式熔断降级平台aegis
  • 基于axios的vue插件,让http请求更简单
  • 离散点最小(凸)包围边界查找
  • 深度学习在携程攻略社区的应用
  • 小程序button引导用户授权
  • 小程序测试方案初探
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4.10~4.16)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (libusb) usb口自动刷新
  • (安卓)跳转应用市场APP详情页的方式
  • (八十八)VFL语言初步 - 实现布局
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (十一)c52学习之旅-动态数码管
  • (学习日记)2024.01.19
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)Windows2003安全设置/维护
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • *上位机的定义
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core引入性能分析引导优化
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /etc/fstab 只读无法修改的解决办法
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)