"use strict";(self.webpackChunkmodio_docs=self.webpackChunkmodio_docs||[]).push([[2284],{3179:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var i=n(4848),o=n(8453);const s={id:"linux-getting-started",title:"Getting Started",slug:"/cppsdk/linux/getting-started",sidebar_position:0,custom_edit_url:"https://github.com/modio/modio-sdk-internal/blob/develop/platform/linux/doc/getting-started.mdx"},a=void 0,r={id:"game-integration/cppsdk/linux/linux-getting-started",title:"Getting Started",description:"mod.io Linux SDK Integration",source:"@site/public/en-us/game-integration/cppsdk/linux/getting-started.mdx",sourceDirName:"game-integration/cppsdk/linux",slug:"/cppsdk/linux/getting-started",permalink:"/cppsdk/linux/getting-started",draft:!1,unlisted:!1,editUrl:"https://github.com/modio/modio-sdk-internal/blob/develop/platform/linux/doc/getting-started.mdx",tags:[],version:"current",sidebarPosition:0,frontMatter:{id:"linux-getting-started",title:"Getting Started",slug:"/cppsdk/linux/getting-started",sidebar_position:0,custom_edit_url:"https://github.com/modio/modio-sdk-internal/blob/develop/platform/linux/doc/getting-started.mdx"},sidebar:"sidebar",previous:{title:"CMake Integration",permalink:"/cppsdk/windows/cmake-integration"},next:{title:"CMake Integration",permalink:"/cppsdk/linux/cmake-integration"}},d={},l=[{value:"mod.io Linux SDK Integration",id:"modio-linux-sdk-integration",level:2},{value:"Linux SDK Versions",id:"linux-sdk-versions",level:2},{value:"Dependencies",id:"dependencies",level:2}];function u(e){const t={admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"modio-linux-sdk-integration",children:"mod.io Linux SDK Integration"}),"\n",(0,i.jsxs)(t.p,{children:["The use of Linux with the mod.io SDK is ready by default. You can find the ",(0,i.jsx)(t.code,{children:"linux"})," directory in the platform subdirectory of your SDK installation.\nYou can then target ",(0,i.jsx)(t.code,{children:"LINUX"})," to compile the mod.io SDK for Linux SDK."]}),"\n",(0,i.jsx)(t.h2,{id:"linux-sdk-versions",children:"Linux SDK Versions"}),"\n",(0,i.jsx)(t.p,{children:"The mod.io SDK is built and tested against Ubuntu 21.04 using clang v10. Using different versions of the Linux SDK may result in compilation issues."}),"\n",(0,i.jsxs)(t.p,{children:["In Linux, the default way to compile the mod.io SDK requires CMake with Ninja as generator, which you can install CMake Installation instructions or using a package manager like ",(0,i.jsx)(t.code,{children:"apt"}),":"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-cmake",children:"sudo apt install cmake ninja\n"})}),"\n",(0,i.jsx)(t.h2,{id:"dependencies",children:"Dependencies"}),"\n",(0,i.jsx)(t.p,{children:'The mod.io SDK requires a Linux kernel with liburing support (v5.1 or later). The io_uring system calls provides asynchronous input/output operations. To fulfill that requirement and have the development tools ready, the following commands employ the "apt" package manager (tested on Ubuntu 20.04 Focal Fossa):'}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"sudo apt update\nsudo apt upgrade\nsudo apt install llvm clang lldb make wget python3 ninja-build git unzip\n## Install Cmake\nwget -q -O cmake-linux.sh https://github.com/Kitware/CMake/releases/download/v3.21.3/cmake-3.21.3-Linux-x86_64.sh\nsh cmake-linux.sh -- --skip-license --prefix=/usr/\n## Install liburing-dev\nwget http://mirrors.kernel.org/ubuntu/pool/main/libu/liburing/liburing-dev_0.7-3ubuntu3_amd64.deb\nwget http://mirrors.kernel.org/ubuntu/pool/main/libu/liburing/liburing1_0.7-3ubuntu3_amd64.deb\nsudo apt install ./liburing*deb\n"})}),"\n",(0,i.jsx)(t.admonition,{type:"note",children:(0,i.jsx)(t.p,{children:'If you are using the "header_only" release mode, the mod.io SDK includes MbedTLS headers, but requires the library installed in your system, which was tested with libmbedtls-dev 2.28.0 in Ubuntu. The "static" mode includes these libraries in the same folder as the libmodioStatic.a'})})]})}function c(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>r});var i=n(6540);const o={},s=i.createContext(o);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]);