Closed jobatabs closed 3 years ago
Hey ! Thanks, but it will be more useful for you when it will work :)
You are right in not worrying about gtest
, it and qt
are not required to build the CLI (more stable) version of mcmap
.
Sounds like a standard (version) issue. Apple ships clang
disguised as gcc
that may not support the C++17 standard I used in the program.
I can think of a few options:
brew install
a version of gcc
/g++
and compile with it. Set CXX
accordingly before the cmake
configuration.The build succeded with both compilers on macOS tests, but I never encountered your issue.
Please let me know if that helped !
Hi, I in fact noticed today I already have a Homebrew-managed version of g++,g++-10
. But unfortunately doing CXX=g++-10 make
still produces the same errors. This also happens with absolute path CXX=/usr/local/bin/g++-10 make
.
From man clang
:
The default C++ language standard is gnu++14.
But c++17 and gnu++17 are both supported with -std=<std>
. Can the Makefile be changed to specify a standard for the clang compiler?
Yes but the important step is that CMake sees it. It selected the clang
version:
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
The CMake configuration already has the C++17 standard set required, and it generates the Makefile tailored to the system it runs on. I do not not write the Makefile anymore, as CMake is supposed to handle this sort of things.
And standard support is a subjective thing. GCC 8-9 have C++17 support but do not understand <filesystem>
which is from C++17.
Okay, I rm -rf mcmap/
and started from a clean clone. One CXX=g++-10 cmake .
and CXX=g++-10 make -j
later, I received another failure, but with different errors.
$ CXX=g++-10 make -j
[ 8%] Built target format
[ 20%] Built target regionReader
[ 24%] Built target extractChunk
[ 28%] Building CXX object scripts/CMakeFiles/nbt2json.dir/nbt2json.cpp.o
[ 36%] Built target json2bson
[ 40%] Generating colors.bson
Scanning dependencies of target mcmap_core
[ 44%] Building CXX object src/CMakeFiles/mcmap_core.dir/block_drawers.cpp.o
[ 48%] Building CXX object src/CMakeFiles/mcmap_core.dir/chunk.cpp.o
[ 52%] Building CXX object src/CMakeFiles/mcmap_core.dir/canvas.cpp.o
[ 56%] Building CXX object src/CMakeFiles/mcmap_core.dir/colors.cpp.o
[ 60%] Building CXX object src/CMakeFiles/mcmap_core.dir/helper.cpp.o
[ 64%] Building CXX object src/CMakeFiles/mcmap_core.dir/mcmap.cpp.o
[ 68%] Building CXX object src/CMakeFiles/mcmap_core.dir/png.cpp.o
[ 76%] Building CXX object src/CMakeFiles/mcmap_core.dir/savefile.cpp.o
[ 72%] Building CXX object src/CMakeFiles/mcmap_core.dir/section.cpp.o
[ 80%] Building CXX object src/CMakeFiles/mcmap_core.dir/settings.cpp.o
[ 84%] Building CXX object src/CMakeFiles/mcmap_core.dir/worldloader.cpp.o
In file included from /Users/jonatannoponen/Downloads/mcmap/src/include/nbt/parser.hpp:6,
from /Users/jonatannoponen/Downloads/mcmap/scripts/nbt2json.cpp:4:
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp: In instantiation of 'constexpr PointerType nbt::NBT::get_ptr() const [with PointerType = const std::vector<long int>*; typename std::enable_if<(std::is_pointer<_Tp>::value && std::is_const<typename std::remove_pointer<_Tp>::type>::value), int>::type <anonymous> = 0]':
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:815:32: required from 'constexpr decltype (((const nbt::NBT*)this)->get_ptr<PointerType>()) nbt::NBT::get() const [with PointerType = const std::vector<long int>*; typename std::enable_if<std::is_pointer<_Tp>::value, int>::type <anonymous> = 0; decltype (((const nbt::NBT*)this)->get_ptr<PointerType>()) = const std::vector<long int>*]'
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/to_json.hpp:57:67: required from here
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:801:24: error: no matching function for call to 'nbt::NBT::get_impl_ptr(const std::vector<long int>*) const'
801 | return get_impl_ptr(static_cast<PointerType>(nullptr));
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:671:15: note: candidate: 'nbt::NBT::tag_byte_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_byte_t*)'
671 | tag_byte_t *get_impl_ptr(tag_byte_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:671:28: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_byte_t*' {aka 'signed char*'}
671 | tag_byte_t *get_impl_ptr(tag_byte_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:675:31: note: candidate: 'constexpr const tag_byte_t* nbt::NBT::get_impl_ptr(const tag_byte_t*) const'
675 | constexpr const tag_byte_t *get_impl_ptr(const tag_byte_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:675:44: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_byte_t*' {aka 'const signed char*'}
675 | constexpr const tag_byte_t *get_impl_ptr(const tag_byte_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:680:16: note: candidate: 'nbt::NBT::tag_short_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_short_t*)'
680 | tag_short_t *get_impl_ptr(tag_short_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:680:29: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_short_t*' {aka 'short int*'}
680 | tag_short_t *get_impl_ptr(tag_short_t *) noexcept {
| ^~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:685:3: note: candidate: 'constexpr const tag_short_t* nbt::NBT::get_impl_ptr(const tag_short_t*) const'
685 | get_impl_ptr(const tag_short_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:685:16: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_short_t*' {aka 'const short int*'}
685 | get_impl_ptr(const tag_short_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:690:14: note: candidate: 'nbt::NBT::tag_int_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_int_t*)'
690 | tag_int_t *get_impl_ptr(tag_int_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:690:27: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_int_t*' {aka 'int*'}
690 | tag_int_t *get_impl_ptr(tag_int_t *) noexcept {
| ^~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:694:30: note: candidate: 'constexpr const tag_int_t* nbt::NBT::get_impl_ptr(const tag_int_t*) const'
694 | constexpr const tag_int_t *get_impl_ptr(const tag_int_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:694:43: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_int_t*' {aka 'const int*'}
694 | constexpr const tag_int_t *get_impl_ptr(const tag_int_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:699:15: note: candidate: 'nbt::NBT::tag_long_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_long_t*)'
699 | tag_long_t *get_impl_ptr(tag_long_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:699:28: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_long_t*' {aka 'long long int*'}
699 | tag_long_t *get_impl_ptr(tag_long_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:703:31: note: candidate: 'constexpr const tag_long_t* nbt::NBT::get_impl_ptr(const tag_long_t*) const'
703 | constexpr const tag_long_t *get_impl_ptr(const tag_long_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:703:44: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_long_t*' {aka 'const long long int*'}
703 | constexpr const tag_long_t *get_impl_ptr(const tag_long_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:708:16: note: candidate: 'nbt::NBT::tag_float_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_float_t*)'
708 | tag_float_t *get_impl_ptr(tag_float_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:708:29: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_float_t*' {aka 'float*'}
708 | tag_float_t *get_impl_ptr(tag_float_t *) noexcept {
| ^~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:713:3: note: candidate: 'constexpr const tag_float_t* nbt::NBT::get_impl_ptr(const tag_float_t*) const'
713 | get_impl_ptr(const tag_float_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:713:16: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_float_t*' {aka 'const float*'}
713 | get_impl_ptr(const tag_float_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:718:17: note: candidate: 'nbt::NBT::tag_double_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_double_t*)'
718 | tag_double_t *get_impl_ptr(tag_double_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:718:30: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_double_t*' {aka 'double*'}
718 | tag_double_t *get_impl_ptr(tag_double_t *) noexcept {
| ^~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:723:3: note: candidate: 'constexpr const tag_double_t* nbt::NBT::get_impl_ptr(const tag_double_t*) const'
723 | get_impl_ptr(const tag_double_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:723:16: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_double_t*' {aka 'const double*'}
723 | get_impl_ptr(const tag_double_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:728:21: note: candidate: 'nbt::NBT::tag_byte_array_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_byte_array_t*)'
728 | tag_byte_array_t *get_impl_ptr(tag_byte_array_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:728:34: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_byte_array_t*' {aka 'std::vector<signed char>*'}
728 | tag_byte_array_t *get_impl_ptr(tag_byte_array_t *) noexcept {
| ^~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:733:3: note: candidate: 'constexpr const tag_byte_array_t* nbt::NBT::get_impl_ptr(const tag_byte_array_t*) const'
733 | get_impl_ptr(const tag_byte_array_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:733:16: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_byte_array_t*' {aka 'const std::vector<signed char>*'}
733 | get_impl_ptr(const tag_byte_array_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:738:17: note: candidate: 'nbt::NBT::tag_string_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_string_t*)'
738 | tag_string_t *get_impl_ptr(tag_string_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:738:30: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_string_t*' {aka 'std::__cxx11::basic_string<char>*'}
738 | tag_string_t *get_impl_ptr(tag_string_t *) noexcept {
| ^~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:743:3: note: candidate: 'constexpr const tag_string_t* nbt::NBT::get_impl_ptr(const tag_string_t*) const'
743 | get_impl_ptr(const tag_string_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:743:16: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_string_t*' {aka 'const std::__cxx11::basic_string<char>*'}
743 | get_impl_ptr(const tag_string_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:748:15: note: candidate: 'nbt::NBT::tag_list_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_list_t*)'
748 | tag_list_t *get_impl_ptr(tag_list_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:748:28: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_list_t*' {aka 'std::vector<nbt::NBT>*'}
748 | tag_list_t *get_impl_ptr(tag_list_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:752:31: note: candidate: 'constexpr const tag_list_t* nbt::NBT::get_impl_ptr(const tag_list_t*) const'
752 | constexpr const tag_list_t *get_impl_ptr(const tag_list_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:752:44: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_list_t*' {aka 'const std::vector<nbt::NBT>*'}
752 | constexpr const tag_list_t *get_impl_ptr(const tag_list_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:757:19: note: candidate: 'nbt::NBT::tag_compound_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_compound_t*)'
757 | tag_compound_t *get_impl_ptr(tag_compound_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:757:32: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_compound_t*' {aka 'std::map<std::__cxx11::basic_string<char>, nbt::NBT>*'}
757 | tag_compound_t *get_impl_ptr(tag_compound_t *) noexcept {
| ^~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:762:3: note: candidate: 'constexpr const tag_compound_t* nbt::NBT::get_impl_ptr(const tag_compound_t*) const'
762 | get_impl_ptr(const tag_compound_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:762:16: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_compound_t*' {aka 'const std::map<std::__cxx11::basic_string<char>, nbt::NBT>*'}
762 | get_impl_ptr(const tag_compound_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:767:20: note: candidate: 'nbt::NBT::tag_int_array_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_int_array_t*)'
767 | tag_int_array_t *get_impl_ptr(tag_int_array_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:767:33: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_int_array_t*' {aka 'std::vector<int>*'}
767 | tag_int_array_t *get_impl_ptr(tag_int_array_t *) noexcept {
| ^~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:772:3: note: candidate: 'constexpr const tag_int_array_t* nbt::NBT::get_impl_ptr(const tag_int_array_t*) const'
772 | get_impl_ptr(const tag_int_array_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:772:16: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_int_array_t*' {aka 'const std::vector<int>*'}
772 | get_impl_ptr(const tag_int_array_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:777:21: note: candidate: 'nbt::NBT::tag_long_array_t* nbt::NBT::get_impl_ptr(nbt::NBT::tag_long_array_t*)'
777 | tag_long_array_t *get_impl_ptr(tag_long_array_t *) noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:777:34: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'nbt::NBT::tag_long_array_t*' {aka 'std::vector<long long int>*'}
777 | tag_long_array_t *get_impl_ptr(tag_long_array_t *) noexcept {
| ^~~~~~~~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:782:3: note: candidate: 'constexpr const tag_long_array_t* nbt::NBT::get_impl_ptr(const tag_long_array_t*) const'
782 | get_impl_ptr(const tag_long_array_t *) const noexcept {
| ^~~~~~~~~~~~
/Users/jonatannoponen/Downloads/mcmap/src/include/nbt/nbt.hpp:782:16: note: no known conversion for argument 1 from 'const std::vector<long int>*' to 'const tag_long_array_t*' {aka 'const std::vector<long long int>*'}
782 | get_impl_ptr(const tag_long_array_t *) const noexcept {
| ^~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [scripts/CMakeFiles/nbt2json.dir/nbt2json.cpp.o] Error 1
make[1]: *** [scripts/CMakeFiles/nbt2json.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 88%] Linking CXX static library libmcmap_core.a
[ 88%] Built target mcmap_core
make: *** [all] Error 2
And here the previous cmake, which seems succesful now.
$ CXX=g++-10 cmake .
-- The CXX compiler identification is GNU 10.2.0
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/local/bin/g++-10 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libz.tbd (found version "1.2.11")
-- Found PNG: /usr/local/lib/libpng.dylib (found version "1.6.37")
-- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)
-- Could NOT find QT (missing: QT_DIR)
CMake Warning (dev) at CMakeLists.txt:20 (FIND_PACKAGE):
Policy CMP0084 is not set: The FindQt module does not exist for
find_package(). Run "cmake --help-policy CMP0084" for policy details. Use
the cmake_policy command to set the policy and suppress this warning.
This warning is for project developers. Use -Wno-dev to suppress it.
-- Could NOT find Qt3 (missing: QT_QT_LIBRARY QT_INCLUDE_DIR QT_MOC_EXECUTABLE)
CMake was unable to find desired Qt version: 3. Set advanced values QT_QMAKE_EXECUTABLE and QT3_QGLOBAL_H_FILE.
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/jonatannoponen/Downloads/mcmap
Sorry, I had apparently missed this part from your original response:
Set CXX accordingly before the cmake configuration.
I've seen that error before on MSVC compilers. Weird. I've created a new branch, called JSONPatch. It should fix it hopefully.
The last errors from the thread have been resolved on MSVC. Hopefully the program compiles on macOS with the appropriate compiler. Closing old issue.
Hi, thanks for making this software! Really seems like just what I've been looking for.
I tried building just a moment ago according to README.
g++ --version
outputs:I have installed
libpng
andlibomp
and they are both latest available version.cmake
was not installed on my system, so Ibrew install cmake
And then
cmake .
I then tried
make -j
but received numerous errors, so I went back and read ifcmake
had said anything notable.Output of
cmake .
So suspecting that missing
qt
was the issue, I once againbrew install qt
. I could not find GTest on brew but decided not to worry about it for now.Then onto
make -j
.I received the same kinds of errors, over and over again from multiple files.
So it seems the code is only playing nice with macOS 10.15, which is a shame. Upgrading to Catalina is untenable for me. Is there a possibility of an "easy fix" or is this the state of affairs for now? It would be good to mention in the README, as many people are running 10.14.