-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I opened libarchive.sln and proceeded to build ALL_BUILD as per the instructions (https://github.com/libarchive/libarchive/wiki/BuildInstructions#WindowsVisual_Studio). I got a lot of syntax errors, but it did create some of the files I needed. I'm assuming I needed archive.h and archive_entry.h based on a stackoverflow post I found but I also need libarchive.dll or libarchive.lib, neither of which exist. I went back to the instructions and built RUN_TESTS and the build failed and nothing really happened as far as I can tell.
On Linux, you have the benefit of package managers with all the common libraries ready to install with apt or yum/dnf. Same on FreeBSD with pkg. On MacOS you have MacPorts or Homebrew. On Windows, we now have vcpkg. I've chopped and changed which platforms and package management systems to use over the years depending upon project requirements. Before vcpkg, I wrote my own CMake-based "super-build" for Windows, for the subset of libraries and tools I needed. You can browse an archived copy here.
In terms of how I got better, it was primarily through project requirements driving improvements in CI automation. I've gone through several CI systems, from Jenkins to GitHub/Travis-CI/AppVeyor, to GitLab CI and others. Developing cross-platform software means testing it at on all the platforms you support. Number one task for each platform is to develop and document how to provision all of the needed third-party prerequisites (example). You can then automate that as appropriate, using whatever tooling is appropriate. For example, Dockerfiles, setup scripts, Ansible/Chef (examples), manual instructions. The aim here is to make it possible to make it possible to recreate a working setup, and keep your setup up-to-date either by applying updates or recreating a fresh copy. When supporting many platforms, maintaining all of the infrastructure can be a full-time job in its own right.