如何为Synology DS218 +交叉编译Perl模块(此处:Device :: SerialPort)?

问题描述 投票:0回答:1

我正在尝试为Synology Diskstation DS218 +构建Perl模块(Device :: SerialPort),该模块在Intel Celeron J3355(Apollolake)处理器上运行。我设法通过spksrc Synology Toolchain在同一台机器上运行的Docker映像中为Synology构建了更为复杂的软件包,例如“ make”,但对于Perl模块却没有做到。我试图使用perlbrew为DS218 +运行的相同Perl版本(当前为5.24.0)构建它们,并复制生成的文件,但是我能得到的最好的错误是诸如“未定义的符号:PL_stack_sp在/ usr /local/share/perl5/core_perl/XSLoader.pm“。

编辑:这是目标系统上perl -V的输出:

[user@DS218 ~]$ perl -V
Summary of my perl5 (revision 5 version 24 subversion 0) configuration:
Derived from: fa04148f1272140cc97a02f4fca347a6540dc6b5
Platform:
osname=linux, osvers=current, archname=x86_64-linux
Compiler:
Linker and Libraries:
Dynamic Linking:
Characteristics of this binary (from libperl): 
Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                    PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV
                    PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
                    PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                    PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_ITHREADS
                    USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
                    USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME
                    USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API
Locally applied patches:
uncommitted-changes
Built under linux
Compiled at Jan 21 2019 19:42:02
@INC:
/usr/local/lib/perl5/site_perl
/usr/local/share/perl5/site_perl
/usr/local/lib/perl5/vendor_perl
/usr/local/share/perl5/vendor_perl
/usr/local/lib/perl5/core_perl
/usr/local/share/perl5/core_perl

我知道我可以安装第三方程序包管理器,例如IPGK,但我不希望有额外的开销(而且喜欢学习;))。如果有人可以指向我,我会准备一个实际上可在DS218 +上使用的预编译二进制文件。

非常感谢您提供任何指针!

perl cross-compiling perl-module synology
1个回答
0
投票
为了改善复制环境,请在目标系统上运行perl -V以查看其配置。相关项目,可能更多:

cccdlflags ccdlflags ccflags ccversion config_args gccversion gnulibc_version lddlflags libc libs

© www.soinside.com 2019 - 2024. All rights reserved.