[Therion] Problem compiling Therion 6.1.7 on Fedora 38
Matěj Plch
plch.matej at gmail.com
Mon May 15 17:38:55 CEST 2023
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
More information about the Therion
mailing list