[Therion] Problem compiling Therion 6.1.7 on Fedora 38

Bill Gee bgee at campercaver.net
Fri May 12 20:12:13 CEST 2023


Thanks!  That made a difference.  I still get an error, but it happens 
later in the process.  This happens after a bunch of other g++ commands 
have run.

====================== Paste text =============
g++ -c -DIMG_API_VERSION=1 -Wall -DTHLINUX -O2 -DPROJ_VER=9 
-I/usr/include -Iextern -Iextern/shapelib -Iextern/quickhull -std=c++17 
-o thdb1d.o thdb1d.cxx
In file included from extern/quickhull/QuickHull.hpp:10,
                  from thdb1d.cxx:53:
extern/quickhull/Structs/Mesh.hpp:41:30: error: ‘uint8_t’ in namespace 
‘std’ does not name a type; did you mean ‘wint_t’?
    41 |                         std::uint8_t 
m_isVisibleFaceOnCurrentIteration : 1;
       |                              ^~~~~~~
       |                              wint_t
extern/quickhull/Structs/Mesh.hpp:42:30: error: ‘uint8_t’ in namespace 
‘std’ does not name a type; did you mean ‘wint_t’?
    42 |                         std::uint8_t m_inFaceStack : 1;
       |                              ^~~~~~~
       |                              wint_t
extern/quickhull/Structs/Mesh.hpp:43:30: error: ‘uint8_t’ in namespace 
‘std’ does not name a type; did you mean ‘wint_t’?
    43 |                         std::uint8_t 
m_horizonEdgesOnCurrentIteration : 3; // Bit for each half edge assigned 
to this face, each being 0 or 1 depending on whether the edge belongs to 
horizon edge
       |                              ^~~~~~~
       |                              wint_t
extern/quickhull/Structs/Mesh.hpp: In constructor 
‘quickhull::MeshBuilder<T>::Face::Face()’:
extern/quickhull/Structs/Mesh.hpp:50:42: error: class 
‘quickhull::MeshBuilder<T>::Face’ does not have any field named 
‘m_isVisibleFaceOnCurrentIteration’
    50 | 
m_isVisibleFaceOnCurrentIteration(0),
       | 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern/quickhull/Structs/Mesh.hpp:51:42: error: class 
‘quickhull::MeshBuilder<T>::Face’ does not have any field named 
‘m_inFaceStack’
    51 |                                          m_inFaceStack(0),
       |                                          ^~~~~~~~~~~~~
extern/quickhull/Structs/Mesh.hpp:52:42: error: class 
‘quickhull::MeshBuilder<T>::Face’ does not have any field named 
‘m_horizonEdgesOnCurrentIteration’
    52 | 
m_horizonEdgesOnCurrentIteration(0)
       | 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:151: thdb1d.o] Error 1
================================ End of pasted text ================

When I built therion 6.1.6 on Fedora 37, I used cmake instead of make. 
Trying that process, I get yet another error!

============== Begin pasted text ===============
/home/bgee/Installs/therion-6.1.7/loch/lxFile.cxx: In member function 
‘bool lxFile::HasAnyWalls()’:
/home/bgee/Installs/therion-6.1.7/loch/lxFile.cxx:1345:30: error: no 
match for ‘operator!=’ (operand types are ‘lxFileSize’ and ‘<unnamed enum>’)
  1345 |       if (shi->m_sectionType != LXFILE_SHOT_SECTION_NONE) {
       |           ~~~~~~~~~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~
       |                |                |
       |                lxFileSize       <unnamed enum>
/home/bgee/Installs/therion-6.1.7/loch/lxMath.h:77:6: note: candidate: 
‘bool operator!=(const lxVec&, const lxVec&)’
    77 | bool operator != ( const lxVec& p, const lxVec& q );
       |      ^~~~~~~~
/home/bgee/Installs/therion-6.1.7/loch/lxMath.h:77:33: note:   no known 
conversion for argument 1 from ‘lxFileSize’ to ‘const lxVec&’
    77 | bool operator != ( const lxVec& p, const lxVec& q );
       |                    ~~~~~~~~~~~~~^
make[2]: *** [loch/CMakeFiles/common-utils.dir/build.make:76: 
loch/CMakeFiles/common-utils.dir/lxFile.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3821: 
loch/CMakeFiles/common-utils.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

=================== End pasted text ===============

===============
Bill Gee

On 5/12/23 12:40, Matěj Plch wrote:
> Hi, Therion 6.1.7 does not include internal copy of fmt library, you 
> need to install package fmt-devel.
> 
> Dne pá 12. 5. 2023 17:03 uživatel Bill Gee <bgee at campercaver.net 
> <mailto:bgee at campercaver.net>> napsal:
> 
>     I gave it a shot today to see if I could duplicate Rodrigo's
>     problem.  I
>     got a completely different error:
> 
>     ===========================
>     [bgee at main2 build]$ cmake ..
>     CMake Error at cmake/Dependencies.cmake:8 (find_package):
>         By not providing "Findfmt.cmake" in CMAKE_MODULE_PATH this
>     project has
>         asked CMake to find a package configuration file provided by
>     "fmt", but
>         CMake did not find one.
> 
>         Could not find a package configuration file provided by "fmt"
>     with any of
>         the following names:
> 
>           fmtConfig.cmake
>           fmt-config.cmake
> 
>         Add the installation prefix of "fmt" to CMAKE_PREFIX_PATH or set
>     "fmt_DIR"
>         to a directory containing one of the above files.  If "fmt"
>     provides a
>         separate development package or SDK, be sure it has been installed.
>     Call Stack (most recent call first):
>         CMakeLists.txt:18 (include)
>     ===============================
> 
>     This is Fedora 38.  The compile of 6.1.6 on Fedora 37 worked correctly
>     for me.  6.1.6 still works after the upgrade to Fedora 38.  I did not
>     recompile it.
> 
> 
> 
>     -- 
>     ===============
>     Bill Gee
>     _______________________________________________
>     Therion mailing list
>     Therion at speleo.sk <mailto:Therion at speleo.sk>
>     https://mailman.speleo.sk/listinfo/therion
>     <https://mailman.speleo.sk/listinfo/therion>
> 
> 
> _______________________________________________
> Therion mailing list
> Therion at speleo.sk
> https://mailman.speleo.sk/listinfo/therion


More information about the Therion mailing list