BoomingTech / Piccolo

Piccolo (formerly Pilot) – mini game engine for games104
MIT License
5.93k stars 1.83k forks source link

fix: build error in archlinux #480

Open YXHXianYu opened 9 months ago

YXHXianYu commented 9 months ago

Archlinux在编译Piccolo时,会遇到 uint32_t 等类型不存在的问题,如: #475

经过检查,发现是由于JoltPhysics和vulkan memory allocator这两个库分别少引用了cstdint和cstdio的问题,导致在archlinux平台无法正常通过编译。

我分别在两个文件中加入了两行#include命令,添加后,Piccolo均可以在我的Archlinux和Windows平台正常通过编译。

1evergreen commented 7 months ago

archlinux 遇到了同样的头文件问题, 通过这个可以解决

DantesLin commented 2 months ago

Archlinux在编译Piccolo时,会遇到 uint32_t 等类型不存在的问题,如: #475

经过检查,发现是由于JoltPhysics和vulkan memory allocator这两个库分别少引用了cstdint和cstdio的问题,导致在archlinux平台无法正常通过编译。

我分别在两个文件中加入了两行#include命令,添加后,Piccolo均可以在我的Archlinux和Windows平台正常通过编译。

我按你的修改,还是有问题:

11 warnings generated. [217/286] Building CXX object engine/source/runtime/CMakeFiles/PiccoloRuntime.dir/core/meta/reflection/reflection.cpp.o FAILED: engine/source/runtime/CMakeFiles/PiccoloRuntime.dir/core/meta/reflection/reflection.cpp.o /usr/bin/clang++ -DJPH_DEBUG_RENDERER -DJPH_PROFILE_ENABLED -DPICCOLO_VK_LAYER_PATH=/run/media/Piccolo/engine/3rdparty/VulkanSDK/bin/Linux -DSPDLOG_COMPILED_LIB -D_DEBUG -I/run/media/Piccolo/engine/3rdparty/VulkanSDK/include -I/run/media/Piccolo/engine/shader/generated/cpp -I/run/media/Piccolo/engine/source -I/run/media/Piccolo/engine/3rdparty/json11 -I/run/media/Piccolo/engine/3rdparty/vulkanmemoryallocator/include -I/run/media/Piccolo/engine/source/runtime -I/run/media/Piccolo/engine/source/runtime/function/render/include -I/run/media/Piccolo/engine/3rdparty/spdlog/include -I/run/media/Piccolo/engine/3rdparty/tinyobjloader -I/run/media/Piccolo/engine/3rdparty/stb -I/run/media/Piccolo/engine/3rdparty/glfw/include -I/run/media/Piccolo/engine/3rdparty/imgui -I/run/media/Piccolo/engine/3rdparty/JoltPhysics/Build/.. -I/run/media/Piccolo/engine/3rdparty/lua-5.4.4 -isystem /run/media/Piccolo/engine/3rdparty/sol2-3.3.0/include -g -std=gnu++17 -MD -MT engine/source/runtime/CMakeFiles/PiccoloRuntime.dir/core/meta/reflection/reflection.cpp.o -MF engine/source/runtime/CMakeFiles/PiccoloRuntime.dir/core/meta/reflection/reflection.cpp.o.d -o engine/source/runtime/CMakeFiles/PiccoloRuntime.dir/core/meta/reflection/reflection.cpp.o -c /run/media/Piccolo/engine/source/runtime/core/meta/reflection/reflection.cpp /run/media/Piccolo/engine/source/runtime/core/meta/reflection/reflection.cpp:177:34: error: no member named 'find_if' in namespace 'std' 177 | const auto it = std::find_if(m_fields.begin(), m_fields.end(), [&](const auto& i) { | ~^ /run/media/Piccolo/engine/source/runtime/core/meta/reflection/reflection.cpp:187:34: error: no member named 'find_if' in namespace 'std' 187 | const auto it = std::find_if(m_methods.begin(), m_methods.end(), [&](const auto& i) { | ~^ 2 errors generated. [230/286] Building CXX object engine/source/runtime/CMakeFiles/PiccoloRuntime.dir/function/framework/component/lua/lua_component.cpp.o /run/media/Piccolo/engine/source/runtime/function/framework/component/lua/lua_component.cpp:83:5: warning: non-void function does not return a value in all control paths [-Wreturn-type] 83 | } | ^ /run/media/Piccolo/engine/source/runtime/function/framework/component/lua/lua_component.cpp:153:61: note: in instantiation of function template specialization 'Piccolo::LuaComponent::get' requested here 153 | m_lua_state.set_function("get_bool", &LuaComponent::get); | ^ 1 warning generated. [232/286] Building CXX object engine/source/runtime/CMakeFiles/PiccoloRuntime.dir/core/meta/reflection/reflection_register.cpp.o ninja: build stopped: subcommand failed.