<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:PMingLiU;
panose-1:2 2 5 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Aptos;
panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"\@PMingLiU";
panose-1:2 1 6 1 0 1 1 1 1 1;}
@font-face
{font-family:"Andale Mono";
panose-1:2 11 5 9 0 0 0 0 0 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
code
{mso-style-priority:99;
font-family:"Courier New";}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
font-size:10.0pt;
font-family:"Courier New";}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;}
span.EmailStyle25
{mso-style-type:personal-reply;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Hi Even, <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal">It didn’t help. I got the similar error: <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">In file included from /usr/include/c++/8/memory:80,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> from /scratch/gdal/gdal/port/cpl_error.h:372,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> from /scratch/gdal/gdal/gcore/gdal.h:30,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> from /scratch/gdal/gdal/gcore/gdalalgorithm.h:19,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> from /scratch/gdal/gdal/apps/gdalalg_clip_common.h:16,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> from /scratch/gdal/gdal/apps/gdalalg_clip_common.cpp:13:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">/usr/include/c++/8/bits/unique_ptr.h: In instantiation of ?~@~Xvoid std:: default_delete<_Tp>::operator()(_Tp*) const [with _Tp = GDALRasterAttributeTable]?~@~Y:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">/usr/include/c++/8/bits/unique_ptr.h:277:17: required from ?~@~Xstd:: unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = GDALRasterAttributeTable; _Dp =
<span style="color:red">std::default_delete<GDALRasterAttributeTable>]?~@~</span>Y<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">/scratch/gdal/gdal/gcore/gdal_priv.h:3668:55: required from here<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">/usr/include/c++/8/bits/unique_ptr.h:79:16: error: invalid application of ?~@~Xsizeof?~@~Y to incomplete type ?~@~XGDALRasterAttributeTable?~@~Y<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> static_assert(sizeof(_Tp)>0,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> ^~~~~~~~~~~<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">gmake[2]: *** [apps/CMakeFiles/appslib.dir/build.make:90: apps/CMakeFiles/ appslib.dir/gdalalg_clip_common.cpp.o] Error 1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">gmake[1]: *** [CMakeFiles/Makefile2:8072: apps/CMakeFiles/appslib.dir/all] Error 2<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If I put gdal_rat.h at the top of gdal_priv.h as you suggested before, the build proceeds a little further but failed with the similar error but on a different type:
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">[ 1%] Building CXX object apps/CMakeFiles/appslib.dir/gdalalg_pipeline.cpp.o<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">In file included from /usr/include/c++/8/memory:80,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> from /scratch/gdal/gdal/port/cpl_error.h:372,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> from /scratch/gdal/gdal/apps/gdalalg_pipeline.cpp:13:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">/usr/include/c++/8/bits/unique_ptr.h: In instantiation of ?void std::default_del<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">ete<_Tp>::operator()(_Tp*) const [with _Tp = MEMDataset]?:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">/usr/include/c++/8/bits/unique_ptr.h:277:17: required from ?std::unique_ptr<_T<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">p, _Dp>::~unique_ptr() [with _Tp = MEMDataset; _Dp =
<span style="color:red">std::default_delete<MEMData<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono";color:red">set>]?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">/scratch/gdal/gdal/apps/gdalalg_vector_pipeline.h:193:38: required from here<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">/usr/include/c++/8/bits/unique_ptr.h:79:16: error: invalid application of ?sizeo<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">f? to incomplete type ?MEMDataset?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> static_assert(sizeof(_Tp)>0,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono""> ^~~~~~~~~~~<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">gmake[2]: *** [apps/CMakeFiles/appslib.dir/build.make:258: apps/CMakeFiles/appsl<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">ib.dir/gdalalg_pipeline.cpp.o] Error 1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">gmake[1]: *** [CMakeFiles/Makefile2:8072: apps/CMakeFiles/appslib.dir/all] Error<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Andale Mono"">2<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">-Fengting<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="color:black">From:
</span></b><span style="color:black">Even Rouault <even.rouault@spatialys.com><br>
<b>Date: </b>Wednesday, July 30, 2025 at 4:08</span><span style="font-family:"Arial",sans-serif;color:black"> </span><span style="color:black">PM<br>
<b>To: </b>Fengting Chen <fengting.chen@oracle.com>, gdal dev <gdal-dev@lists.osgeo.org><br>
<b>Subject: </b>Re: [External] : Re: [gdal-dev] Error on building from master branch on linux<o:p></o:p></span></p>
</div>
<p>Fengting,<o:p></o:p></p>
<p>would <a href="https://urldefense.com/v3/__https:/github.com/OSGeo/gdal/pull/12830__;!!ACWV5N9M2RV99hQ!IQ-4A2c9x6A3nauMg-dyaTF1RRdUUfXZMhY8McqwBkKoA1G2K5ZeLJ0EN1k3FH38b-mhlkQz8cjr0NROPFZRU4kA4fvI$">
https://github.com/OSGeo/gdal/pull/12830</a> help ?<o:p></o:p></p>
<p>Even<o:p></o:p></p>
<div>
<p class="MsoNormal">Le 30/07/2025 à 21:35, Fengting Chen a écrit :<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Hi Even, </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I have been trying to upgrade my compiler to resolve the GDAL compilation issue but without success.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">According to the documentation of unique_ptr,
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><code><span style="font-size:10.0pt">unique_ptr</span></code> may be constructed for an
<a href="https://urldefense.com/v3/__https:/en.cppreference.com/w/cpp/language/type-id.html*Incomplete_type__;Iw!!ACWV5N9M2RV99hQ!IQ-4A2c9x6A3nauMg-dyaTF1RRdUUfXZMhY8McqwBkKoA1G2K5ZeLJ0EN1k3FH38b-mhlkQz8cjr0NROPFZRU7ywDM87$" title="cpp/language/type">
incomplete type</a> <code><span style="font-size:10.0pt">T</span></code>, such as to facilitate the use as a handle in the
<a href="https://urldefense.com/v3/__https:/en.cppreference.com/w/cpp/language/pimpl.html__;!!ACWV5N9M2RV99hQ!IQ-4A2c9x6A3nauMg-dyaTF1RRdUUfXZMhY8McqwBkKoA1G2K5ZeLJ0EN1k3FH38b-mhlkQz8cjr0NROPFZRU968o7GK$" title="cpp/language/pimpl">
pImpl idiom</a>. If the default deleter is used, <code><span style="font-size:10.0pt">T</span></code> must be complete at the point in code where the deleter is invoked, which happens in the destructor, move assignment operator, and
<code><span style="font-size:10.0pt">reset</span></code> member function of <code>
<span style="font-size:10.0pt">unique_ptr</span></code>.<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">The error I encountered during the compilation shows that the deleter of GDALRasterAttributeTable was invoked when the type was not complete:
<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121">In file included from /usr/include/c++/8/memory:80,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121"> from /scratch/gdal/gdal/port/cpl_error.h:372,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121"> from /scratch/gdal/gdal/gcore/gdal.h:30,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121"> from /scratch/gdal/gdal/gcore/gdal_priv.h:45,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121"> from /scratch/gdal/gdal/frmts/pdf/pdfdrivercore.h:16,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121"> from /scratch/gdal/gdal/frmts/pdf/pdfdrivercore.cpp:13:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121">/usr/include/c++/8/bits/unique_ptr.h: In instantiation of ?~@~Xvoid std:: default_delete<_Tp>::operator()(_Tp*) const [with _Tp = GDALRasterAttributeTable]?~@~Y:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121">/usr/include/c++/8/bits/unique_ptr.h:277:17: required from ?~@~Xstd:: unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = GDALRasterAttributeTable; _Dp = std::default_delete<GDALRasterAttributeTable>]?~@~Y</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121">/scratch/gdal/gdal/gcore/gdal_priv.h:3664:55: required from here</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121">/usr/include/c++/8/bits/unique_ptr.h:79:16: error: invalid application of ?~@~Xsizeof?~@~Y to incomplete type ?~@~XGDALRasterAttributeTable?~@~Y</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121"> static_assert(sizeof(_Tp)>0,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121"> ^~~~~~~~~~~</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121">gmake[2]: *** [frmts/pdf/CMakeFiles/gdal_PDF_core.dir/build.make:76: frmts/pdf/ CMakeFiles/gdal_PDF_core.dir/pdfdrivercore.cpp.o] Error 1</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Is there any other way to work around it?
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">-Fengting</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<div id="mail-editor-reference-message-container">
<div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="color:black">From:
</span></b><span style="color:black">Even Rouault <a href="mailto:even.rouault@spatialys.com">
<even.rouault@spatialys.com></a><br>
<b>Date: </b>Wednesday, July 23, 2025 at 4:59</span><span style="font-family:"Arial",sans-serif;color:black"> </span><span style="color:black">PM<br>
<b>To: </b>Fengting Chen <a href="mailto:fengting.chen@oracle.com"><fengting.chen@oracle.com></a>, gdal dev
<a href="mailto:gdal-dev@lists.osgeo.org"><gdal-dev@lists.osgeo.org></a><br>
<b>Subject: </b>Re: [External] : Re: [gdal-dev] Error on building from master branch on linux</span><o:p></o:p></p>
</div>
<p> <o:p></o:p></p>
<div>
<p class="MsoNormal">Le 23/07/2025 à 22:51, Fengting Chen a écrit :<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Hi Even, </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">After resolving error on “GDALRasterAttributeTable” by adding “gdal_rat.h” to gdal_priv.h, the compilation failed again.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">The compiler on my machine was working fine with GDAL on the master branch this early May. Could there be anything changed in the GDAL master that caused the compilation failure?
</span><o:p></o:p></p>
</div>
</blockquote>
<p>yes, the addition of std::unique_ptr<GDALRasterAttributeTable> m_poRAT{}; at line 3664 of gdal_priv.h<o:p></o:p></p>
<p>You should try to update to a more recent compiler.<o:p></o:p></p>
<p>Even<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<pre>-- <o:p></o:p></pre>
<pre><a href="https://urldefense.com/v3/__http:/www.spatialys.com__;!!ACWV5N9M2RV99hQ!IV0UbTzTiheCT_RtAke5Lf5jehgWvysNhzGSf-s6QzosmATNDjTe2xTp17hAk7QEaHW-P68knUEP-DxLDC1FZG4RX5oU$">http://www.spatialys.com</a><o:p></o:p></pre>
<pre>My software is free, but my time generally not.<o:p></o:p></pre>
</div>
</div>
</div>
</div>
</blockquote>
<pre>-- <o:p></o:p></pre>
<pre><a href="https://urldefense.com/v3/__http:/www.spatialys.com__;!!ACWV5N9M2RV99hQ!IQ-4A2c9x6A3nauMg-dyaTF1RRdUUfXZMhY8McqwBkKoA1G2K5ZeLJ0EN1k3FH38b-mhlkQz8cjr0NROPFZRUwjBn9F2$">http://www.spatialys.com</a><o:p></o:p></pre>
<pre>My software is free, but my time generally not.<o:p></o:p></pre>
</div>
</div>
</div>
</div>
</body>
</html>