我正在尝试使用Windows 11和Visual Studio 2022配置OpenDDS库。
我通过Visual Studio命令提示符运行配置文件,并收到以下错误。
Downloading ACE+TAO 2.2a with latest patches
Extracting archive ACE+TAO-2.2a_with_latest_patches_NO_makefiles.zip
Use of uninitialized value $prop_value in scalar chomp at configure line 473.
Couldn't get submodule.tools/rapidjson.openddsConfigureCommit from .gitmodules
Stopped at configure line 475.
ERROR: configure failed with errorcode 1
configure.cmd文件包含以下代码
@echo off
:: Win32 configure script wrapper for OpenDDS
:: Distributed under the OpenDDS License.
:: See: http://www.opendds.org/license.html
for %%x in (perl.exe) do set PERLPATH=%%~dp$PATH:x
if "x%PERLPATH%"=="x" (
echo ERROR: perl.exe was not found. This script requires Perl.
exit /b 1
)
set PERLPATH=
perl configure %*
if %ERRORLEVEL% NEQ 0 (
echo ERROR: configure failed with errorcode %errorlevel%
exit /b %errorlevel%
)
if exist setenv.cmd call setenv.cmd
我相信这里的perl配置文件是https://github.com/objectcomputing/OpenDDS/blob/master/configure
我交叉引用了这个问题"Use of uninitialized value in scalar chomp" in Perl,但不幸的是,我没有用Perl编写代码,所以我不知道如何解决这个问题。
2条答案
按热度按时间3npbholx1#
这是关于一个管道文件句柄,它无法读取它应该读取的内容,正如你链接的代码中所描述的那样。第473行位于这个相对简短的子例程中:
该错误消息没有特别值得注意的内容,只是函数
chomp
用于未定义的值。“真实的的”错误消息出现在它的下面:在代码中,您可以看到它试图打开一个到
git
进程的管道,该进程显然确实打开了(因为它没有死在那里),但随后没有从文件句柄中读取任何内容然后导致代码死亡。
也许您需要调查的是为什么
git
进程没有从管道中读取任何内容。pw9qyyiw2#
就像@TLP提到的https://stackoverflow.com/a/74026678/8869703一样,它确实是git的一个失败。
来自OpenDDS的压缩文件不包含git包,所以我不能依赖来自https://opendds.org/downloads.html的文件。
我按照下面的步骤,我发现从评论@simpsont-oci这里https://github.com/objectcomputing/OpenDDS/discussions/3784:
git clone https://github.com/objectcomputing/OpenDDS.git
git submodule init
git submodule update
configure
这对我很有效。