Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Macos下编译不通过 #1

Open
solosky opened this issue Jun 7, 2024 · 3 comments
Open

Macos下编译不通过 #1

solosky opened this issue Jun 7, 2024 · 3 comments

Comments

@solosky
Copy link

solosky commented Jun 7, 2024

大佬,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
Copy link
Owner

指定cpp11试试

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

@solosky
Copy link
Author

solosky commented Jun 9, 2024

指定cpp11试试

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

感谢,编译通过。

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

#add_compile_options(-std=c++11)
#set(CMAKE_CXX_FLAGS "-std=c++11")

@Forairaaaaa
Copy link
Owner

这个试试

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants