If you want to use a self-compiled GDAL with QGIS packages, you have to use exactly the same GDAL version that the packages are compiled against. For bionic (Ubuntu 18.04 and Linux Mint 19), You can find the version in https://qgis.org/ubuntu/dists/bionic/main/binary-amd64/Packages and https://qgis.org/ubuntugis/dists/bionic/main/binary-amd64/Packages if you search for the `gdal-abi` dependency. Currently this is GDAL 2.2.3 in the main Ubuntu repo and 2.3.2 in the Ubuntugis-unstable ppa. https://trac.osgeo.org/gdal/wiki/ECW suggests to use the ECW SDK v 5.4 with GDAL 2.2.4 or newer. **UPDATE FROM THE COMMENTS** It seems to be necessary to install the `libpng-dev` package **before** self-compiling GDAL. Don't remove the packaged GDAL version, because this will remove QGIS and any other GDAL-dependant package too. Instead, copy the self-compiled libgdal files and the libNCSEcw files from `/usr/local/lib` to `/usr/lib`. QGIS 2.18.28 from the ubuntugis unstable ppa (without using any qgis.org) installs fine along with the ECW driver, as well as QGIS 3.4 and QGIS 3.6 from `https://qgis.org/ubuntugis-ltr bionic` or `https://qgis.org/ubuntugis bionic`. It even works for GDAL 2.2.3 and Qgis 3.6 from `https://qgis.org/ubuntu bionic` without any ubuntugis dependency. If you installed against ubuntugis-unstable, You have to update and recompile GDAL every time that ubuntugis-unstable updates GDAL. The GDAL version in the main ubuntu repo will not change, until you upgrade your OS to a newer version.