本文内容列表:
发生了什么事:
我先安装了VS2015,建了一个项目A,运行正常。
然后安装VS2017 Community,打开项目A,项目文件自动升级,运行正常。
然后我卸载了VS2015,然后发现原来的项目A无法编译,报了很多错误。例如,_ASSERT 未定义或其他什么。
查看项目属性的包含路径,发现有C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt。这条路已经不存在了。
显然,卸载VS2015时,Windows SDK也被删除了。
所以我使用VS2017安装程序重新安装Windows SDK并选择最新版本10.0.15063.0。安装后重新编译仍然是一个优点。项目属性中的路径没有改变。
经过Google搜索,发现解决方案文件设置了SDK版本,于是我右键单击解决方案文件,重新设置解决方案目标,选择10.0.15063.0解决问题。
选择“构建”或“构建解决方案”将仅编译自上次构建以来已更改的项目文件和组件。注意 如果解决方案包含多个项目,则“生成”命令将变为“生成解决方案”。选择“重建解决方案”将首先“清理”解决方案,然后构建所有项目文件和组件。选择“清理解决方案”将删除所有中间文件和输出文件,仅留下项目和组件文件,稍后可以从中生成中间文件和输出文件的新实例。 =================================================== ===== 请打开VS2005启动帮助,选择索引,在“查找”框中输入“Clean Solution”,里面有详细准确的说明
(以AAA转BBB为例)
www.sychzs.cn项目更名为:BBB
AAA工程.cpp和.h文件名:AAA -- BBB(全部替换)
2.全局替换:AAA --BBB(默认范围:整个解决方案)
注意:外部依赖无法自动修改,需要自己修改
3.关闭解决方案(关闭程序)
将4.src文件下的AAA文件夹重命名为BBB
AAA 文件下所有带有 AAA 的文件名:AAA -- BBB
5.两个文件夹..vcxproj和.vcxproj.filters中的所有AAA——BBB(记事本打开)
6.删除lib/win32/Realease/pssplugin下的所有文件(再次编译时可能会提示部分文件打不开,可以直接复制粘贴)
7. 用记事本打开解决方案名称.sln:AAA -- BBB(全部替换)
8.打开项目:BBB项目属性--c/c++--预处理器--预处理器定义--编辑器:
9. 再生溶液
1。概述
ACE 是一个开源框架,为开发高性能、分布式实时和嵌入式系统提供了许多组件和模式。 ACE 为套接字、多路分解循环、线程和同步原语提供了强大且高效的抽象。
TAO (ACE-ORB) 是 CORBA 对象请求代理 (ORB) 的开源实现,使用 ACE 框架中的组件和模式构建。
CIAO(组件集成 ACE ORB)是构建在 TAO 之上的 CORBA 组件模型 (CCM) 的开源实现。
DAnCE 是构建在 TAO 之上的部署和配置标准 (DC) 的开源实现。
OpenDDS 是 OMG 数据分发服务 (DDS) 的开源实现
www.sychzs.cn7下安装
//环境
vs2015
perl5.18.4 x86
ACE+TAO-6.5.10
OpenDDS-DDS-3.12.2
1) 安装 perl
解压安装,安装完成后勾选perl -v
2) 安装ACE+TAO
//解压并设置环境变量
解压到目录,比如我把ACE和DDS都放在openDDS目录下,C:\openDDS\ACE_wrappers、C:\openDDS\DDS
设置环境变量:
添加环境变量方法自行百度,
ACE_ROOT= C:\openDDS\ACE_wrappers//就是你的存储路径
TAO_ROOT= C:\openDDS\ACE_wrappers\TAO
在路径后面添加:%ACE_ROOT%\lib; %ACE_ROOT%\bin
注意分号
//添加config.h
在%ACE_ROOT%/ace下添加config.h文件,内容为
//生成工程文件
打开ACE_vc14.sln,环境选择debug-x86
项目 - 重新定义解决方案目标 - 好的
生成解决方案
上述ACE编译完成后,再进入TAO目录,按照上述步骤生成TAO_ACE_vc14.sln
3)编译OpenDDS
将OpenDDS解压到相关文件并设置环境变量
DDS_ROOT=C:\openDDS\DDS //这是你自己的解压目录
添加路径:%DDS_ROOT%\lib;%DDS_ROOT%\bin
使用vs生成工具生成DDS的VS工程文件
cd DDS
.\config
报错时,修改config文件,找到错误行,修改compiler_version,指定版本
$opts{'compiler_version'}="vc14";
打开生成的dds.sln,按照ACE的步骤生成解决方案
4) 测试
在 OpenDDS-3.12.2\examples\DCPS\Messenger_Imr 下执行
run_www.sychzs.cn,执行结果测试通过成功
3.打开使用
1) 创建一个新的 Messenger.idl 文件
模块 Messenger {
#pragma DCPS_DATA_TYPE "Messenger::消息"
#pragma DCPS_DATA_KEY "Messenger::消息 subject_id"
结构消息 {
字符串;
字符串主题;
长 subject_id;
字符串文本;
长数;
};
};
2)编译生成文件
tao_idl Messenger.idl
opendds_idl Messenger.idl
tao_idl -I../OpenDDS-3.12.2 MessengerTypeSupport.idl
有两种方法:如果在工具栏中找不到,则直接进入目录查找。目录为:“C:\Program Files\Microsoft Visual Studio 14.0\Common7\Tools”,其中“C:\Program Files”并替换为自己的VS2015安装目录。