blob: 509eb87b337753fd5abb5a7737520b297333f586 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>PLC4X &#x2013; </title>
<script src="../../js/jquery.slim.min.js" type="text/javascript"></script>
<!--script src="../../js/popper.min.js" type="javascript"></script-->
<script src="../../js/bootstrap.bundle.min.js" type="text/javascript"></script>
<!-- The tooling for adding images and links to Apache events -->
<script src="https://www.apachecon.com/event-images/snippet.js" type="text/javascript"></script>
<!-- FontAwesome -->
<link rel="stylesheet" href="../../css/all.min.css" type="text/css"/>
<!-- Bootstrap -->
<link rel="stylesheet" href="../../css/bootstrap.min.css" type="text/css"/>
<!-- Some Maven Site defaults -->
<link rel="stylesheet" href="../../css/maven-base.css" type="text/css"/>
<link rel="stylesheet" href="../../css/maven-theme.css" type="text/css"/>
<!-- The PLC4X version of a bootstrap theme -->
<link rel="stylesheet" href="../../css/themes/plc4x.css" type="text/css" id="pagestyle"/>
<!-- A custom style for printing content -->
<link rel="stylesheet" href="../../css/print.css" type="text/css" media="print"/>
<meta http-equiv="Content-Language" content="en"/>
</head>
<body class="composite">
<nav class="navbar navbar-light navbar-expand-md bg-faded justify-content-center border-bottom">
<!--a href="/" class="navbar-brand d-flex w-50 mr-auto">Navbar 3</a-->
<a href="https://plc4x.apache.org/" id="bannerLeft"><img src="../../images/apache_plc4x_logo_small.png" alt="Apache PLC4X"/></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar3">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse w-100" id="collapsingNavbar3">
<ul class="navbar-nav w-100 justify-content-center">
<li class="nav-item">
<a class="nav-link" href="../../index.html">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../users/index.html">Users</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="../../developers/index.html">Developers</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../apache/index.html">Apache</a>
</li>
</ul>
<ul class="nav navbar-nav ml-auto justify-content-end">
<li class="nav-item row valign-middle">
<a class="acevent" data-format="wide" data-mode="light" data-event="random" style="width:240px;height:60px;"></a>
</li>
</ul>
</div>
</nav>
<div class="container-fluid">
<div class="row h-100">
<nav class="col-sm-push col-md-2 pt-3 sidebar">
<div class="sidebar-sticky">
<ul class="nav flex-column">
<li class="nav-item">
<a href="../../developers/infrastructure/issues.html" class="nav-link">Bug & Issue Tracker</a>
</li>
<li class="nav-item">
<a href="../../developers/index.html" class="nav-link">Section Home</a>
</li>
<li class="nav-item">
<a href="../../developers/preparing/index.html" class="nav-link">Preparing your Computer</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/preparing/linux.html" class="nav-link">Linux</a>
</li>
<li class="nav-item">
<a href="../../developers/preparing/macos.html" class="nav-link">Mac OS</a>
</li>
<li class="nav-item">
<strong class="nav-link">Windows</strong>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/building.html" class="nav-link">Building</a>
</li>
<li class="nav-item">
<a href="../../developers/contributing.html" class="nav-link">Contributing</a>
</li>
<li class="nav-item">
<a href="../../developers/tutorials/index.html" class="nav-link">Tutorials</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/tutorials/writing-driver.html" class="nav-link">Writing Drivers</a>
</li>
<li class="nav-item">
<a href="../../developers/tutorials/testing-serializers-and-parsers.html" class="nav-link">Testing Drivers</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/code-gen/index.html" class="nav-link">Code Generation</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/code-gen/protocol/mspec.html" class="nav-link">Protocol: MSpec Format</a>
</li>
<li class="nav-item">
<a href="../../developers/code-gen/language/freemarker.html" class="nav-link">Language: Apache Freemarker</a>
</li>
<li class="nav-item">
<a href="../../developers/code-gen/protocol/df1.html" class="nav-link">Example: DF1 MSpec</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/protocols/index.html" class="nav-link">Protocols</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/protocols/ads/protocol.html" class="nav-link">ADS/AMS</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/index.html" class="nav-link">Infrastructure</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/infrastructure/ci.html" class="nav-link">Continuous Integration</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/issues.html" class="nav-link">Bug & Issue Tracker</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/sonar.html" class="nav-link">Code Analysis</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/wiki.html" class="nav-link">Wiki</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/vm.html" class="nav-link">Build VM</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/website.html" class="nav-link">Website</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/vpn.html" class="nav-link">IoT VPN</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/release/index.html" class="nav-link">Releasing</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/release/release.html" class="nav-link">Releasing</a>
</li>
<li class="nav-item">
<a href="../../developers/release/validation.html" class="nav-link">Validating</a>
</li>
<li class="nav-item">
<a href="../../developers/release/build-tools.html" class="nav-link">Releasing Build-Tools</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/tools.html" class="nav-link">Tools</a>
</li>
<li class="nav-item">
<a href="../../developers/team.html" class="nav-link">Team</a>
</li>
<li class="nav-item">
<a href="../../developers/decisions.html" class="nav-link">Decision Making</a>
</li>
<li class="nav-item">
<a href="../../developers/maturity.html" class="nav-link">Maturity</a>
</li>
</ul>
</div>
</nav>
<main role="main" class="ml-sm-auto px-4 col-sm-pull col-md-9 col-lg-10 h-100">
<div class="sect1">
<h2 id="windows">Windows</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="git">Git</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>git --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>In order to install it, please download end execute the installer from <a href="https://git-scm.com/download/win">here</a> and make sure to have it add the git executable to your systems <code>PATH</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="libpcap">LibPCAP</h3>
<div class="paragraph">
<p>A special version of LibPCAP is available for Windows, which is called Npcap.
It is available from <a href="https://npcap.com/">here</a>.</p>
</div>
<div class="paragraph">
<p>So in order to install things correctly:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>install the version Npcap from above location.</p>
</li>
<li>
<p>Add <code>%SystemRoot%\System32\Npcap\</code> to your System&#8217;s <code>PATH</code></p>
</li>
<li>
<p>Possibly reboot</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>After this all should be working.</p>
</div>
<div class="paragraph">
<p>If not, have a look here for possible help: <a href="https://github.com/kaitoy/pcap4j#about-native-library-loading">here</a></p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
If you had WinPcap installed, you need to uninstall this and make sure the files <code>Packet.dll</code> and <code>wpcap.dll</code> are deleted in the <code>%SystemRoot%\System32\</code> directory. Otherwise <code>pcap4j</code> will incorrectly detect a wrong version.
</td>
</tr>
</table>
</div>
</div>
<div class="sect2">
<h3 id="gcc">gcc</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>gcc --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>On windows we will be using something called WinBuilds, which is sort of a package consisting of a typical build environment consisting of multiple build tools. So please look at the WinBuilds chapter at the end of the Windows section.</p>
</div>
</div>
<div class="sect2">
<h3 id="dotnet">dotnet</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>dotnet --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>Usually this is already installed on Windows machines.</p>
</div>
<div class="paragraph">
<p>Download the installer from <a href="https://dotnet.microsoft.com/download/dotnet-core/3.1">here</a>
(Be sure to download an installer from the second column labeled <code>Build apps - SDK</code>)</p>
</div>
</div>
<div class="sect2">
<h3 id="python">python</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>python --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>You can get Python from <a href="https://www.python.org/downloads/release/python-2716/">here</a>.</p>
</div>
<div class="paragraph">
<p>Make sure directory containing <code>python.exe</code> is added to your systems <code>PATH</code>.
Also make sure you restarted your IDE and or console window after changing the <code>PATH</code> settings for the changes to take effect.</p>
</div>
</div>
<div class="sect2">
<h3 id="winbuilds">WinBuilds</h3>
<div class="paragraph">
<p>We have tested WinBuilds with the bundle found <a href="http://win-builds.org/doku.php/download_and_installation_from_windows">here</a>.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<div class="title">Warning</div>
</td>
<td class="content">
Please use the installer. When using the zip distribution and manually adding that to the <code>PATH</code> the build will fail without a log output as some binaries can&#8217;t find some of the DLL files.
</td>
</tr>
</table>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<div class="title">Warning</div>
</td>
<td class="content">
When installing in virtual machines. Make sure to run the installer from a path referring to a local hard-disk <code>C:</code>, <code>D:</code> &#8230;&#8203; when using Paralells the location of the <code>Downloads</code> or <code>Desktop</code> is a shared directory on your Mac.
</td>
</tr>
</table>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<div class="title">Warning</div>
</td>
<td class="content">
When installing in virtual machines. Please <strong>don&#8217;t</strong> install to any of Windows' <code>Program Files</code> directories. Strange things will happen.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>When running the installer, make sure to select the options:
- Native Windows
- x86_64
Not quite sure which elements are really needed, better just install all of them.</p>
</div>
<div class="paragraph">
<p>When running the setup, be sure to leave the setting on the <code>line ending conversions</code> on <code>Checkout Windows-style, commit Unix-style line endings</code>, this will cause specially in the generated code, a lot of false-dirty files, however when selecting other options that check out the code with Unix line endings (the repo is in this state) the build will fail.</p>
</div>
<div class="paragraph">
<p>Make sure it&#8217;s <code>bin</code> directory is added to your systems <code>PATH</code>, however the installer should have taken care of this.
Also make sure you restarted your IDE and or console window after changing the <code>PATH</code> settings for the changes to take effect.</p>
</div>
</div>
<div class="sect2">
<h3 id="openssl">OpenSSL</h3>
<div class="paragraph">
<p>It is encouraged to build them yourself, but binaries can be downloaded from sites like:
<a href="https://slproweb.com/products/Win32OpenSSL.html">this</a></p>
</div>
<div class="paragraph">
<p>Usually I download the 64Bit installer.</p>
</div>
<div class="paragraph">
<p>Be sure to add the <code>bin</code> directory to the systems Path.</p>
</div>
</div>
<div class="sect2">
<h3 id="clang">Clang</h3>
<div class="paragraph">
<p>Pre-Compiled Clang executables seem to be shipped with <code>Visual Studio Community</code> edition. So if you have this installed, just make sure the executables are available on the path.</p>
</div>
<div class="paragraph">
<p>If not, it&#8217;s a little tricky to find pre-compiled binaries for windows.</p>
</div>
<div class="paragraph">
<p>Seem the versions available <a href="https://releases.llvm.org/download.html">here</a> to the trick.
Download and install the <code>LLVM</code> package.</p>
</div>
<div class="paragraph">
<p>Select to add the LLVM to the path (doesn&#8217;t matter if just for the current user or for all)</p>
</div>
</div>
</div>
</div>
</main>
<footer class="pt-4 my-md-5 pt-md-5 w-100 border-top">
<div class="row justify-content-md-center" style="font-size: 13px">
<div class="col col-6 text-center">
Copyright &#169; 2017&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.<br/>
Apache PLC4X, PLC4X, Apache, the Apache feather logo, and the Apache PLC4X project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
<br/><div style="text-align:center;">Home screen image taken from <a
href="https://flic.kr/p/chEftd">Flickr</a>, "Tesla Robot Dance" by Steve Jurvetson, licensed
under <a href="https://creativecommons.org/licenses/by/2.0/">CC BY 2.0 Generic</a>, image cropped
and blur effect added.</div>
</div>
</div>
</footer>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="../../js/jquery.slim.min.js"></script>
<script src="../../js/popper.min.js"></script>
<script src="../../js/bootstrap.min.js"></script>
<script type="text/javascript">
$('.carousel .carousel-item').each(function(){
var next = $(this).next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
for (let i = 0; i < 3; i++) {
next=next.next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
}
});
</script>
</body>
</html>