Window下构建libzmq


前提

libzmq下载见文章<<C++针对ZeroMQ库的选择>>
确保已安装CMake。如果尚未安装,请从CMake官方网站下载并安装。


使用vscode构建

  1. 安装CMake Tools扩展

在Visual Studio Code中,转到“Extensions”侧边栏选项卡(或按Ctrl+Shift+X),搜索“CMake Tools”,然后点击“Install”。

  1. 打开libzmq目录

在Visual Studio Code中,转到“File > Open Folder…”,然后选择libzmq项目文件夹。这将在Visual Studio Code中打开整个项目。

  1. 配置CMake(重点)

1.打开Visual Studio Code的设置:转到“File > Preferences > Settings”(或按Ctrl+,)。
2.在设置中(推荐在工作区设置,在用户区设置的话会影响到其他工程) 搜索“CMake Tools”,然后找到“configuration Settings”。点击在settings.json中编辑,这会打开/创建一个名为settings.json的文件。
3.在settings.json文件中,添加以下行来指定默认构建系统:

"cmake.generator": "Visual Studio 16 2019" //对于Visual Studio 2017,使用"Visual Studio 15 2017"。

ps: 这里我原本使用Ninja生成器的,因为Ninja生成器是通用的可以用MinGW和MSVC编译器,但是CMake报错了。看错误信息好像是生成冲突了,改为Visual Studio 16 2019就没问题…没办法,忍痛用Visual Studio 16 2019
使用Ninja生成器后的CMake报错信息:

[CMake] CMake Error:
[CMake]   Running
[CMake] 
[CMake]    'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe' '-C' 'F:/project/ZeroMQ/libzmq/out/build/x64-Release' '-t' 'recompact'
[CMake] 
[CMake]   failed with:
[CMake] 
[CMake]    ninja: error: build.ninja:1253: multiple rules generate precompiled.hpp [-w dupbuild=err]
  1. CMake

保存settings.json文件,然后开始配置CMake一下。这将根据您选择的配置生成构建文件。

  1. 构建

CMake之后,开始构建,点击Bulid。最好选择install (注意有个坑!)
在这里插入图片描述
一开始install的时候老是报错:

[byild]   CMake Error at cmake_install.cmake:36 (file):
[build]     file cannot create directory:
[build]     f:/project/ZeroMQ/libzmq/install/lib/pkgconfig.  Maybe need administrative
[build]     privileges.
[build]   
[build]   
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: 命令“setlocal [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmEnd [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmErrorLevel [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: exit /b %1 [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmDone [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :VCEnd”已退出,代码为 1。 [F:\project\ZeroMQ\libzmq\build\install.vcxproj]
[proc] The command: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --build f:/project/ZeroMQ/libzmq/build --config Release --target install -j 6 -- exited with code: 1

后面发现是libzmq目录下有个INSTALL文件,和要创建的install目录重名是无法创建的导致编译一直报错,只要把INSTALL文件重命名或者加一个后缀就可以了

坑
6.输出
在这里插入图片描述

使用Visual Studio 构建

这里以vs2019为例,其他的都差不多。

  1. 打开Visual Studio 2019,单击“继续而不使用代码”以打开主窗口。
    在这里插入图片描述

  2. 从菜单中选择 “文件” -> “打开” -> “CMake…”。
    在这里插入图片描述

  3. 浏览到libzmq源代码目录并选择 CMakeLists.txt 文件,然后单击“打开”。然后CMake构建。

  4. 如果构建失败。可能是因为配置问题。参考VSCode修改生成器与编译器重新尝试。
    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值