### Compiling GDAL using proprietary library to support ECW file format - Ubuntu ### QGIS uses GDAL for file formats. ##### 1. UPDATE - Download zip file from [here][1] Version 5.5 or newer so far I tested not working. Cannot use hexagon support portal. Stick with 5.4 ``` unzip ERDAS_ECWJP2_SDK-5.4.0.bin.zip chmod +x ./ERDAS_ECWJP2_SDK-5.4.0.bin ``` ##### 2. Run bin - Choose Option 1. Desktop_Read-Only ```./ERDAS_ECWJP2_SDK-5.4.0.bin``` ##### 3. Copy installed files to /usr/local/hexagon_ecw ``` sudo mkdir -p /usr/local/hexagon_ecw sudo cp -r hexagon/ERDAS-ECW_JPEG_2000_SDK-5.4.0/Desktop_Read-Only/* /usr/local/hexagon_ecw ``` ##### 4. Make symbolic link to libs like libNCSEcw.so.** ``` sudo ln -s /usr/local/hexagon_ecw/lib/x64/release/* /usr/local/lib/ ``` ##### 5. Download and install proper PROJ version Get PROJ version from Help->About Mine is 6.3.1 Download from https://github.com/OSGeo/PROJ/releases. ``` tar -xvf proj-6.3.1.tar.gz cd proj-6.3.1 mkdir build cd build cmake .. # had to install libsqlite3-dev dependency make -j$(nproc) sudo make install ``` ##### 6. Downlad GDAL for specific QGIS version Get GDAL version from Help->About QGIS 3.26.3 uses gdal 3.0.4 Download from http://download.osgeo.org/gdal ``` tar -xvzf gdal-3.0.4.tar.gz cd gdal-3.0.4 ./configure --with-ecw=/usr/local/hexagon_ecw make -j$(nproc) # Compile takes a lot of time... sudo make install ``` ##### 7. Set env. variables ``` echo 'export LD_LIBRARY_PATH=/usr/local/lib' >> ~/.profile echo 'export LD_LIBRARY_PATH=/usr/local/lib' >> ~/.bashrc GDAL_DATA="/usr/local/share/gdal" ldconfig ``` ##### 8. Check if ECW is installed ```gdalinfo --formats | grep ECW``` Based and updated from [here][2]. Tested on Ubuntu 22.04 and 20.04 [1]: https://drive.google.com/file/d/1EZnwRzDgbYd_kTiDqigmJbON5REDha5s/view?usp=sharing [2]: https://www.reddit.com/r/QGIS/comments/icw98f/problem_loading_ecw_file_in_ubuntu_linux/