我目前正在使用C ++开发一个使用Qt的小项目。
我的代码正在调用Perl脚本,我收到了这个错误:
无法在@INC
中找到Proc / ProcessTable.pm
所以我去安装模块,CPAN说:
Proc :: ProcessTable是最新的(0.53)。
所以我搜索了一下,显然可能是因为涉及两个Perl副本。我试图让模块在本地目录上,但Qt仍然无法找到它。我被卡住了。
此外,如果我从命令行运行Perl脚本,一切正常。
有什么建议吗?
答案 0 :(得分:0)
使用perl -MCPAN -eshell
,但将perl
更改为您要为其安装模块的Perl的直接路径。
如果这不起作用,请尝试在失败BEGIN { print "$_\n" for @INC }
之前打印出@INC(例如use
)并将其与perl -e'print "$_\n" for @INC'
给出的内容进行比较。代码中的某些内容可能是从@INC中删除目录。
或者你可以试试
force install Proc::ProcessTable
在CPAN。
答案 1 :(得分:0)
如果您知道安装Proc/ProcessTable.pm
的路径和
与C ++程序使用的perl版本兼容,你可以
使用-I
调用perl:
perl -I /path/to/modules myscript.pl
其中/path/to/modules
是Proc/ProcessTable.pm
的父级,
即/path/to/modules/Proc/ProcessTable.pm
存在。
或将环境变量设置为模块:
export PERL5LIB=/path/to/modules
然后启动你的脚本。这里给出的路径是前缀
内置的@INC
路径。
或让您的脚本使用其他路径:
use lib "/path/to/modules";
我更喜欢1.或2.因为脚本中的硬编码路径几乎总是一个坏主意。