配置 OpenDDS

Posted

技术标签:

【中文标题】配置 OpenDDS【英文标题】:Configuring OpenDDS 【发布时间】:2018-05-17 22:10:19 【问题描述】:

我正在尝试为 OpenDDS 配置环境,但我无法运行配置脚本。真的很感激,如果你们有任何见解。 =D

基本上,在我从here 下载 OpenDDS-3.12.zip 之后。我已解压到一个文件夹并尝试在 VS 命令提示符(VS2017)中使用此命令运行配置文件

configure --compiler=gcc

接下来,下载“ACE+TAO-2.2a_with_latest_patches_NO_makefiles”并将压缩文件解压到根文件夹。

然后它显示这条消息。

ACE_ROOT/ace/config.h exists, skipping configuration of ACE+TAO 
Use of uninitialized value $mpctype in string eq at configure line 1103.                                                
Use of uninitialized value $mpctype in concatenation (.) or string at configure line 1257.                              
Use of uninitialized value $mpctype in string eq at configure line 1266.                                                
Running MPC to generate project files.                                                                                  
MPC_ROOT was set to C:\src\OpenDDS-DDS-3.12.2\ACE_wrappers\MPC.                                                         
Using .../OpenDDS-DDS- 
3.12.2/ACE_wrappers/bin/MakeProjectCreator/config/MPC.cfg                                         
ERROR: Invalid type: C:\src\OpenDDS-DDS-3.12.2\DDS_TAOv2_all.mwc                                                        
mwc.pl v4.1.28                                                                                                          

...
/*lots of explanation of each file here*
*then followed by*/
...

ERROR: Error from MPC, stopped at configure line 1270.   

我同时安装了 Visual Studio 2017 和 Perl 5.22,我不确定这是编译器问题还是其他问题。以下是打印上述错误的配置脚本。

@@ line 1268 -- 1270 @@
  if (!$opts'dry-run') 
if (system("perl \"$ENV'ACE_ROOT'/bin/mwc.pl\" $mwcargs") != 0) 
  die "ERROR: Error from MPC, stopped";


【问题讨论】:

找出$mpctype 的定义位置,可能是缺少环境变量或命令开关。 另外,一般来说,第一个警告/错误对于查看代码最有用,而不是最后一个,所以这里我将从第 1103 行而不是第 1266 行开始查看。 不要使用--compiler=gcc,你使用的不是gcc而是Visual Studio 也许我应该从问题的根源开始。当我尝试仅使用 --compiler 时,它会向我显示 ERROR: Can't find a compiler, set PATH or run this script with the --compiler option. For Microsoft Visual C++, run this script from the Visual Studio Command Prompt. Stopped at configure line 378. 我已经在系统中检查了我的 PATH,perl 是否在其中,或者我错过了什么? 您应该在 Visual Studio 命令提示符下执行命令,您这样做了吗? 【参考方案1】:

$mpctype 在这里定义:

my $mpctype = ($slash eq '/' ||
              ($cross_compile && $buildEnv->'build' eq 'target'))
            ? 'gnuace' : $opts'compiler_version';

它似乎在看$opts'compiler_version',它显然是空的。 %opts 在这里定义:

my %opts = %parseArgs();

所以看起来您应该在命令行中定义compiler_version 或定义目标平台。最好check out the INSTALL options thoroughly

【讨论】:

我已经检查了安装选项,但仍然没有任何解决方案。 TAO 和 ACE 环境是正确的。你如何定义compiler_version @LeonTeng 你可以试试 --compiler_version=dummy 看看它能做什么,但也许你可以试试“gcc”和其他你可能已经安装在你的系统中。 非常感谢您的洞察力,问题已解决。导致问题的原因是 Visual Studio 中缺少的编译器。显然Visual Studio默认没有安装C++,所以只要重新运行安装程序,选择修改并检查C++,然后一切正常。【参考方案2】:

VS2017 默认不安装 c++ 编译器。

如果 VS 2017 已经安装,则修改 VS 2017 并选择 c++ 编译器并安装。 配置(不带 --compiler=gcc 标志)

【讨论】:

【参考方案3】:

我也有类似的问题。作为一个新手,我从 https://opendds.org/quickstart/GettingStartedWindows.html 上的 java 和 windows 入门开始。 第 5 步,“配置(要启用 Java 支持,请使用 configure --java)”在 Visual Studio 命令窗口中不起作用,尽管 已设置 JAVA_HOME。我已经发送了 ACE_ROOT、DDS_ROOT、TAO_ROOT 和 MPC_ROOT,尽管本教程没有基于尝试调试此问题进行说明。 使用“--compiler”选项时,我收到类似于此线程中的错误。是否有任何解决方案只是为了获得“ “现成的”教程工作。使用 Windows 10。

D:\data\OpenDDS-3.13.3>配置 --java --compiler="C:\Program Files\Java\jdk1.8.0_221\bin" ACE_ROOT/ace/config.h 存在,跳过ACE+TAO的配置 在配置行 1482 的字符串 eq 中使用未初始化的值 $mpctype。 在连接 (.) 或配置行的字符串中使用未初始化的值 $mpctype 1646。 在配置行 1655 的字符串 eq 中使用未初始化的值 $mpctype。 运行 MPC 以生成项目文件。 MPC_ROOT 设置为 D:\data\OpenDDS-3.13.3\ACE_WRAPPERS\MPC。 使用 .../OpenDDS-3.13.3/ACE_WRAPPERS/bin/MakeProjectCreator/config/MPC.cfg 错误:无效类型:D:\data\OpenDDS-3.13.3\DDS_TAOv2_all.mwc mwc.pl v4.1.44 ... 错误:来自 MPC 的错误,在配置行 1659 处停止。

【讨论】:

您好 user8039286,欢迎您。请考虑提供更好的格式,因为它很难阅读。

以上是关于配置 OpenDDS的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat卷五---Web 应用配置,管理配置和JVM配置

SpringBoot:配置文件的作用配置文件的格式properties配置文件yml配置文件

IDEA的常用配置,maven配置,git配置操作

SpringCloud Nacos配置管理 -- 统一配置管理(添加配置微服务配置拉取)

Android Gradle 插件LintOptions 配置 ⑦ ( explainIssues 属性配置 | htmlOutput 属性配置 | htmlReport 属性配置 )

Android Gradle 插件LintOptions 配置 ⑤ ( absolutePaths 属性配置 | check 属性配置 | checkAllWarnings 属性配置 )