配置 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配置文件
SpringCloud Nacos配置管理 -- 统一配置管理(添加配置微服务配置拉取)
Android Gradle 插件LintOptions 配置 ⑦ ( explainIssues 属性配置 | htmlOutput 属性配置 | htmlReport 属性配置 )
Android Gradle 插件LintOptions 配置 ⑤ ( absolutePaths 属性配置 | check 属性配置 | checkAllWarnings 属性配置 )