[Therion] Problem compiling Therion 6.1.7 on Fedora 38
Bill Gee
bgee at campercaver.net
Mon May 15 18:56:09 CEST 2023
Arithmetic problems?!?! If it's not one thing, it's another!
Thanks for your efforts. I will be patient and see how things develop.
For now I have a working installation of Therion 6.1.6, and I have no
active cave map projects.
===============
Bill Gee
On 5/15/23 10:38, Matěj Plch wrote:
> It should be fixed in the master branch now, the problem was caused by
> the new version of GCC 13.1. However, with the same compiler there is
> an issue with floating-point arithmetics, so Therion now computes
> different results, we are investigating how to fix this.
>
> so 13. 5. 2023 v 0:12 odesílatel Matěj Plch <plch.matej at gmail.com> napsal:
>>
>> Looks like there are for some reason missing includes, I will fix and test this on Fedora over the weekend.
>>
>> Dne pá 12. 5. 2023 20:12 uživatel Bill Gee <bgee at campercaver.net> napsal:
>>>
>>> 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
>>> _______________________________________________
>>> Therion mailing list
>>> Therion at speleo.sk
>>> 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