将Perl代码迁移到Windows:缺少Udunits包?

时间:2015-04-15 17:44:16

标签: windows perl compilation

我们有一些非常古老的Perl脚本正在做一些数据库工作;脚本在Linux环境中运行,这已经过时了。一个带.pl的Perl脚本加载一个包(扩展名为.pm); .pm文件的代码如下:

use UDUNITS;

我的开发环境是安装了ActivePerl 5.2的Windows机器。我想我能够加载其他包很好,除了我无法在Windows二进制文件中找到UDUNITS包。

有一种方法来编译UDUNITS2包,每http://fossies.org/linux/udunits/udunits2.html#Windows但我无法使用CMake编译 - 获取错误。我第一次参加CMake。

那么我的选择是什么?我不想在Linux上发展,因为我没有专业知识;而且我认为在Windows中我可能只需要经历UDUNITS问题。

谢谢!

更新我现在使用命令行方式:cmake CC =" C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ bin \ cl.exe" CXX =" C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ bin \ cl.exe" -DEXPAT_LIBRARY = c:\ expat32 \ Bin \ libexpat.dll .. 我可以看到'配置完成'并且'生成完成'但是还没有找到像CUNIT这样的消息。构建文件被写入文件夹; 但DLL在哪里?如果这个问题太简单,我很陌生。

3 个答案:

答案 0 :(得分:2)

您是否可以将NDUNITS2的CPAN版本用作替代品?看起来有两个:

https://metacpan.org/pod/Physics::Udunits2

https://metacpan.org/pod/Alien::UDUNITS2

答案 1 :(得分:0)

答案 2 :(得分:0)

没关系,好​​心人和#39;来自Github的帮助(见https://github.com/Unidata/UDUNITS-2/issues/18),我现在可以使用以下代码进行编译: 1)从Source Forge将Exat 32库下载到c:\ expat32

2)从https://github.com/Unidata/UDUNITS-2下载UDUNITS2并解压缩到本地文件夹。

3)使用命令行选项下载并安装CMake 3.2

4)从新创建的' build'中删除以下两个命令。步骤#2中解压缩文件夹内的文件夹:

cmake .. -DCMAKE_PREFIX_PATH=c:\expat32 -G "Visual Studio 11" -DEXPAT_INCLUDE_DIR=C:\expat32\Source\lib -DEXPAT_LIBRARY=c:\expat32\Bin\libexpat.lib

cmake --build . --config Release 

现在我可以在里面看到udunits2.dll:UDUNITS-2-master \ build \ lib \ Release

文件夹。 现在,我需要弄清楚如何在我的PERL脚本中使用这个DLL ...

谢谢大家的帮助!