Forairaaaaa / Regina

年轻人的第一台BB机 (。・`ω´・)
https://phalange.vercel.app
MIT License
58 stars 6 forks source link

Macos下编译不通过 #1

Open solosky opened 1 month ago

solosky commented 1 month ago

大佬,Macos下编译不通过,求指导。

➜  build git:(main) cmake ..
-- The C compiler identification is AppleClang 15.0.0.15000309
-- The CXX compiler identification is AppleClang 15.0.0.15000309
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (2.3s)
-- Generating done (0.1s)
-- Build files have been written to: /Users/solosky/Projects/mycode/Regina/build
➜  build git:(main) make
[  1%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/Fonts/IPA/lgfx_font_japan.c.o
[  2%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/Fonts/efont/lgfx_efont_cn.c.o
[  3%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/Fonts/efont/lgfx_efont_ja.c.o
[  5%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/Fonts/efont/lgfx_efont_kr.c.o
[  6%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/Fonts/efont/lgfx_efont_tw.c.o
[  7%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/utility/lgfx_pngle.c.o
[  8%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/utility/lgfx_qoi.c.o
[ 10%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/utility/lgfx_qrcode.c.o
[ 11%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/utility/lgfx_tjpgd.c.o
[ 12%] Building C object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/utility/miniz.c.o
[ 13%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/LGFXBase.cpp.o
[ 15%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/LGFX_Button.cpp.o
[ 16%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/LGFX_Sprite.cpp.o
[ 17%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/lgfx_fonts.cpp.o
[ 18%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/misc/DividedFrameBuffer.cpp.o
[ 20%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/misc/SpriteBuffer.cpp.o
[ 21%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/misc/common_function.cpp.o
[ 22%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/misc/pixelcopy.cpp.o
[ 23%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/panel/Panel_Device.cpp.o
[ 25%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/panel/Panel_FrameBufferBase.cpp.o
[ 26%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/platforms/sdl/Panel_sdl.cpp.o
[ 27%] Building CXX object CMakeFiles/lovyangfx.dir/dependencies/M5GFX/src/lgfx/v1/platforms/sdl/common.cpp.o
[ 28%] Linking CXX static library liblovyangfx.a
[ 28%] Built target lovyangfx
[ 30%] Building CXX object dependencies/smooth_ui_toolkit/CMakeFiles/smooth_ui_toolkit.dir/src/chart/smooth_line_chart/smooth_line_chart.cpp.o
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.cpp:11:
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.h:12:
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/transition2d.h:12:
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../easing_path/easing_path.h:27:9: error: unknown type name 'constexpr'
        constexpr int maxT = 1000;
        ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../easing_path/easing_path.h:62:18: error: no template named 'function' in namespace 'std'
    typedef std::function<int(const int&)> EasingPath_t;
            ~~~~~^
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.cpp:11:
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.h:12:
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/transition2d.h:13:
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:31:28: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            int startValue = 0;
                           ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:34:26: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            int endValue = 0;
                         ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:37:33: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            TimeSize_t duration = 1000;
                                ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:40:30: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            TimeSize_t delay = 0;
                             ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:43:41: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            EasingPath_t transitionPath = EasingPath::easeOutQuad;
                                        ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:46:18: error: no template named 'function' in namespace 'std'
            std::function<void(Transition*)> updateCallback = nullptr;
            ~~~~~^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:46:61: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            std::function<void(Transition*)> updateCallback = nullptr;
                                                            ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:48:28: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            void* userData = nullptr;
                           ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:54:36: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            TimeSize_t time_offset = 0;
                                   ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:55:35: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            TimeSize_t pause_time = 0;
                                  ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:56:37: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            TimeSize_t pause_offset = 0;
                                    ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:57:31: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            int current_value = 0;
                              ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:58:28: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            bool is_paused = true;
                           ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:59:28: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            bool is_finish = true;
                           ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:66:24: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
        Transition() = default;
                       ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:95:44: error: no template named 'function' in namespace 'std'
        inline void setUpdateCallback(std::function<void(Transition*)> updateCallback)
                                      ~~~~~^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:107:21: error: no template named 'function' in namespace 'std'
        inline std::function<void(Transition*)> getUpdateCallback() { return _config.updateCallback; }
               ~~~~~^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/../transition/transition.h:43:43: error: cannot initialize a member subobject of type 'EasingPath_t' (aka 'int') with an lvalue of type 'int (const int &)'
            EasingPath_t transitionPath = EasingPath::easeOutQuad;
                                          ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.cpp:11:
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.h:12:
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/transition2d.h:28:18: error: no template named 'function' in namespace 'std'
            std::function<void(Transition2D*)> updateCallback = nullptr;
            ~~~~~^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/transition2d.h:28:63: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            std::function<void(Transition2D*)> updateCallback = nullptr;
                                                              ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/transition2d.h:36:29: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
            bool is_changed = true;
                            ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/transition2d.h:42:26: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
        Transition2D() = default;
                         ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/transition2d.h:62:44: error: no template named 'function' in namespace 'std'
        inline void setUpdateCallback(std::function<void(Transition2D*)> updateCallback)
                                      ~~~~~^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../core/transition2d/transition2d.h:78:21: error: no template named 'function' in namespace 'std'
        inline std::function<void(Transition2D*)> getUpdateCallback() { return _config.updateCallback; }
               ~~~~~^
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.cpp:11:
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.h:33:46: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
                TimeSize_t readInputInterval = 20;
                                             ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.h:35:43: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
                TimeSize_t renderInterval = 15;
                                          ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.h:37:32: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
                int valueScale = 1000;
                               ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.h:45:50: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
                TimeSize_t read_input_time_count = 0;
                                                 ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.h:46:46: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
                TimeSize_t render_time_count = 0;
                                             ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.h:47:33: warning: default member initializer for non-static data member is a C++11 extension [-Wc++11-extensions]
                bool is_changed = false;
                                ^
In file included from /Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/smooth_line_chart.cpp:12:
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:30:12: error: unknown type name 'constexpr'
    static constexpr IntermediateType FRACTION_MULT = IntermediateType(1) << FractionBits;
           ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:30:38: error: expected ';' at end of declaration list
    static constexpr IntermediateType FRACTION_MULT = IntermediateType(1) << FractionBits;
                                     ^
                                     ;
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:33:5: error: unknown type name 'constexpr'
    constexpr inline fixed(BaseType val, raw_construct_tag) noexcept : m_value(val) {}
    ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:33:22: error: constructor cannot have a return type
    constexpr inline fixed(BaseType val, raw_construct_tag) noexcept : m_value(val) {}
                     ^~~~~
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:33:60: error: expected ';' at end of declaration list
    constexpr inline fixed(BaseType val, raw_construct_tag) noexcept : m_value(val) {}
                                                           ^
                                                           ;
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:41:5: error: unknown type name 'constexpr'
    constexpr inline explicit fixed(T val) noexcept
    ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:41:31: error: constructor cannot have a return type
    constexpr inline explicit fixed(T val) noexcept
                              ^~~~~
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:41:43: error: expected ';' at end of declaration list
    constexpr inline explicit fixed(T val) noexcept
                                          ^
                                          ;
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:209:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using fixed_16_16 = fixed<std::int32_t, std::int64_t, 16>;
                    ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:210:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using fixed_24_8 = fixed<std::int32_t, std::int64_t, 8>;
                   ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:211:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using fixed_8_24 = fixed<std::int32_t, std::int64_t, 24>;
                   ^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:218:1: error: unknown type name 'constexpr'
constexpr inline fixed<B, I, F, R> operator+(const fixed<B, I, F, R>& x, const fixed<B, I, F, R>& y) noexcept
^
/Users/solosky/Projects/mycode/Regina/dependencies/smooth_ui_toolkit/src/chart/smooth_line_chart/../../utils/fpm/fixed.hpp:218:18: error: no variable template matches partial specialization
constexpr inline fixed<B, I, F, R> operator+(const fixed<B, I, F, R>& x, const fixed<B, I, F, R>& y) noexcept
                 ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
26 warnings and 20 errors generated.
make[2]: *** [dependencies/smooth_ui_toolkit/CMakeFiles/smooth_ui_toolkit.dir/src/chart/smooth_line_chart/smooth_line_chart.cpp.o] Error 1
make[1]: *** [dependencies/smooth_ui_toolkit/CMakeFiles/smooth_ui_toolkit.dir/all] Error 2
make: *** [all] Error 2
➜  build git:(main) gcc
clang: error: no input files
➜  build git:(main) gcc -v
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: x86_64-apple-darwin23.2.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
➜  build git:(main)
Forairaaaaa commented 1 month ago

指定cpp11试试

cmake .. -DCMAKE_CXX_FLAGS="-std=c++11"
make
solosky commented 4 weeks ago

指定cpp11试试

cmake .. -DCMAKE_CXX_FLAGS="-std=c++11"
make

感谢,编译通过。

不过请教下,下面两种修改CMake参数为啥不生效?

#add_compile_options(-std=c++11)
#set(CMAKE_CXX_FLAGS "-std=c++11")
Forairaaaaa commented 4 weeks ago

这个试试

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)