腾讯mars,在windows上编译 - Go语言中文社区

腾讯mars,在windows上编译


本文记录了我在学习mars源码时,遇到的一些问题及解决方法。

准备工作

  1. 安装cmake,(备注,如果下载1.3.0版本,需要cmake编译出vs的工程文件。使用1.3.0之前的版本,则无需下载cmake)
  2. 安装python 2.7.x,(备注同上)
  3. 使用git下载源代码,windows上的git下载地址https://gitforwindows.org/。当然,也可以从git网站上直接下载zip包

编译:

  1. 在命令行,cd到mars/samples/Windows子目录,运行cmake
C:\temp\mars-1.3.0\mars\samples\Windows>cmake .
-- Building for: Visual Studio 15 2017
-- Selecting Windows SDK version 10.0.17134.0 to target Windows 6.1.7601.
-- The C compiler identification is MSVC 19.14.26433.0
-- The CXX compiler identification is MSVC 19.14.26433.0
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2017/C
ommunity/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2017/C
ommunity/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2017
/Community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2017
/Community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config xlog====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config app====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config baseevent====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config mars-boost====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config comm====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config sdt====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config stn====================
-- Configuring done
-- Generating done
-- Build files have been written to: C:/temp/mars-1.3.0/mars/samples/Windows
  1. 使用vs2017,打开C:/temp/mars-1.3.0/mars/samples/Windows下的sample.sln解决方案

  2. 使用vs2017编译,发生错误:
    fatal error C1083: 无法打开包括文件: “thr/threads.h”: No such file or directory
    分析错误原因。这个头文件在vs2015的版本中存在,但是由于这个线程实现不完美,在vs2017中被移除了。因此,如果需要不修改源码,就直接编译,需要使用vs2015。

  3. 使用 -G 选项,生成对应的vs2015解决方案。注意,我的系统是win32,使用-G “Visual Studio 14 2015”。如果是64是系统,应该使用-G “Visual Studio 14 2015 Win64”

c:\temp\mars-1.3.0\mars\samples\Windows>cmake -G "Visual Studio 14 2015" .
-- The C compiler identification is MSVC 19.0.23026.0
-- The CXX compiler identification is MSVC 19.0.23026.0
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio 14.0/V
C/bin/cl.exe
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio 14.0/V
C/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio 14.0
/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio 14.0
/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config xlog====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config app====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config baseevent====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config mars-boost====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config comm====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config sdt====================
-- CMAKE_INSTALL_PREFIX=C:/temp/mars-1.3.0/mars/samples/Windows
-- ==============config stn====================
-- Configuring done
-- Generating done
-- Build files have been written to: C:/temp/mars-1.3.0/mars/samples/Windows
  1. error C2899: 不能在模板声明之外使用类型名称
    typename cannot be used outside a template declaration
    直接删除多余的typename,则可以编译成功。
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/harborian/article/details/90596898
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2023-01-03 17:24:22
  • 阅读 ( 272 )
  • 分类:职场

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢