VS2019编译Hopsan源码

Hopsan开源代码包含多个子项目,整个解决方案默认使用Qt Creator平台进行开发,如果使用VS2019进行编译,有不少地方需要进行相应的修改,否则会出现各种编译不通过问题。接下来,本篇文章将围绕这些注意事项,介绍一下如何通过VisualStudio2019对Hopsan进行编译。

 

1. 准备环境

这里假设您的机器环境已经正确部署CMake、Python、VS2019及其Qt插件(Qt VS Tools)

2.  下载依赖项,请参考这位博主的文章: https://blog.csdn.net/Situo/article/details/110238095

 大概流程是:

打开cmd,进入到dependencies 目录,然后执行:
python download-dependencies.py --all
python download-dependencies.py qwt fmilibrary tclap

 下载完成之后,按照上述参考文献中所述进行编译,编译成功之后,大概如下图所示:

需要注意的是ZMQ的编译;静态库编译之后,第三方使用该库时需要使用ZMQ_STATIC宏,另外还需要加上winsock32.lib;ws2_32.lib;lphlapi.lib文件

 3. 用VS2019打开Qt工程

 编译之前需要去掉“GCC 下面关闭long long 警告的宏” -Wno-long-long

4. 临时去掉HopsanGenerator项目中的FMI功能

在编译HopsanGenerator项目时,发现编译FMI标准模块时,各种错误,这里我们先将FMI相关模块直接剔除,先编译通过再说,具体做法是移除HopsanModelicaGenerator,HopsanFMIGenerator的头和源文件移除,然后到HopsanGeneratorLib.cpp中移除FMI(功能样机接口)相关函数,最后重新编译,直接通过。

5. 设置symhop项目的导出类

在编译hopsanGUI项目,在连接symhop_D.lib时,产生大量LNK2019错误,后来将symhop编译成动态库dll,通过dumpbin /exports symhop_D.dll发现导出函数名称不对,于是去修改SymHop.h头文件,增加extern "C" 并去掉Expression导出类宏SYMHOP_DLLAPI;将项目类型调整静态库,再次编译生成symhop_D.lib之后,再编译hopsanGUI项目,终于一次性编译成功

6.  自动加载QT依赖文件

编译成功之后,双击hopsangui_d.exe还是失败,提示缺少依赖Qt的依赖dll,这里直接利用qt自带的windeployqt.exe来为我们自动加载依赖文件,具体脚本如下:

for /r "%cd%" %%i in (hopsangui_d.exe) do (   
E:\Software\Qt\Qt5.14.2\5.14.2\msvc2015_64\bin\windeployqt.exe "%%~nxi")
pause

以管理员执行脚本,系统会自动为我们拷贝依赖文件到当前文件夹中,最后我们再双击刚刚的exe,终于可以运行了。

编译后的文件压缩成7z后有1G多,直接传不太行,后面有时间上传到百度网盘上。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值