Skip to content

Fix: Add missing <memory> header in shaderc_private.h#1580

Open
aka411 wants to merge 1 commit into
google:mainfrom
aka411:fix-missing-memory-include
Open

Fix: Add missing <memory> header in shaderc_private.h#1580
aka411 wants to merge 1 commit into
google:mainfrom
aka411:fix-missing-memory-include

Conversation

@aka411

@aka411 aka411 commented Jul 8, 2026

Copy link
Copy Markdown

Adding the missing header to resolve a compilation error when building with MinGW64 on Windows.

Click here to expand the error log Error: PS C:\Users\Akash\Music\shaderc lib\shaderc\build> ninja [1075/1158] Building CXX object libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj FAILED: [code=1] libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj C:\msys64\mingw64\bin\c++.exe -DSHADERC_ENABLE_HLSL=1 -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc_util/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/glslang" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-tools/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-headers/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest" -Wimplicit-fallthrough -O3 -DNDEBUG -Wextra-semi -Wall -Werror -fvisibility=hidden -DSHADERC_DISABLE_THREADED_TESTS -Wno-noexcept-type -MD -MT libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -MF libshaderc\CMakeFiles\shaderc_shaderc_private_test.dir\src\shaderc_private_test.cc.obj.d -o libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -c "C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc" In file included from C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc:15: C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:93:8: error: 'unique_ptr' in namespace 'std' does not name a template type 93 | std::unique_ptr initializer; | ^~~~~~~~~~ C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:27:1: note: 'std::unique_ptr' is defined in header ''; this is probably fixable by adding '#include ' 26 | #include "spirv-tools/libspirv.h" +++ |+#include 27 | [1076/1158] Building CXX object libshaderc/CMakeFiles/shad...ed_shaderc_private_test.dir/src/shaderc_private_test.cc.ob FAILED: [code=1] libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj C:\msys64\mingw64\bin\c++.exe -DSHADERC_ENABLE_HLSL=1 -DSHADERC_SHAREDLIB -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc_util/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/glslang" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-tools/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-headers/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest" -Wimplicit-fallthrough -O3 -DNDEBUG -Wextra-semi -Wall -Werror -fvisibility=hidden -DSHADERC_DISABLE_THREADED_TESTS -Wno-noexcept-type -MD -MT libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -MF libshaderc\CMakeFiles\shaderc_shared_shaderc_private_test.dir\src\shaderc_private_test.cc.obj.d -o libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -c "C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc" In file included from C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc:15: C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:93:8: error: 'unique_ptr' in namespace 'std' does not name a template type 93 | std::unique_ptr initializer; | ^~~~~~~~~~ C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:27:1: note: 'std::unique_ptr' is defined in header ''; this is probably fixable by adding '#include ' 26 | #include "spirv-tools/libspirv.h" +++ |+#include 27 | [1084/1158] Building CXX object third_party/spirv-tools/test/opt/CMakeFiles/test_opt.dir/fold_test.cpp.obj ninja: build stopped: subcommand failed.

Environment:

-OS: Windows 11
-Compiler: CXX GCC 15.1.0 (via MSYS2/MinGW64)
-Build System: Ninja
-Build Configuration:Release mode

Verification:
I have applied this change locally and verified that the project now builds successfully using ninja.

Adding the missing <memory> header to resolve a compilation error when building with MinGW64 on Windows.

<details>
<summary><b>Click here to expand the error log</b></summary>
Error:
PS C:\Users\Akash\Music\shaderc lib\shaderc\build> ninja
[1075/1158] Building CXX object libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj
FAILED: [code=1] libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj
C:\msys64\mingw64\bin\c++.exe -DSHADERC_ENABLE_HLSL=1 -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc_util/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/glslang" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-tools/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-headers/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest" -Wimplicit-fallthrough -O3 -DNDEBUG -Wextra-semi -Wall -Werror -fvisibility=hidden -DSHADERC_DISABLE_THREADED_TESTS -Wno-noexcept-type -MD -MT libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -MF libshaderc\CMakeFiles\shaderc_shaderc_private_test.dir\src\shaderc_private_test.cc.obj.d -o libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -c "C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc"
In file included from C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc:15:
C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:93:8: error: 'unique_ptr' in namespace 'std' does not name a template type
   93 |   std::unique_ptr<shaderc_util::GlslangInitializer> initializer;
      |        ^~~~~~~~~~
C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:27:1: note: 'std::unique_ptr' is defined in header '<memory>'; this is probably fixable by adding '#include <memory>'
   26 | #include "spirv-tools/libspirv.h"
  +++ |+#include <memory>
   27 |
[1076/1158] Building CXX object libshaderc/CMakeFiles/shad...ed_shaderc_private_test.dir/src/shaderc_private_test.cc.ob
FAILED: [code=1] libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj
C:\msys64\mingw64\bin\c++.exe -DSHADERC_ENABLE_HLSL=1 -DSHADERC_SHAREDLIB -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc_util/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/glslang" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-tools/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-headers/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest" -Wimplicit-fallthrough -O3 -DNDEBUG -Wextra-semi -Wall -Werror -fvisibility=hidden -DSHADERC_DISABLE_THREADED_TESTS -Wno-noexcept-type -MD -MT libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -MF libshaderc\CMakeFiles\shaderc_shared_shaderc_private_test.dir\src\shaderc_private_test.cc.obj.d -o libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -c "C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc"
In file included from C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc:15:
C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:93:8: error: 'unique_ptr' in namespace 'std' does not name a template type
   93 |   std::unique_ptr<shaderc_util::GlslangInitializer> initializer;
      |        ^~~~~~~~~~
C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:27:1: note: 'std::unique_ptr' is defined in header '<memory>'; this is probably fixable by adding '#include <memory>'
   26 | #include "spirv-tools/libspirv.h"
  +++ |+#include <memory>
   27 |
[1084/1158] Building CXX object third_party/spirv-tools/test/opt/CMakeFiles/test_opt.dir/fold_test.cpp.obj
ninja: build stopped: subcommand failed.
</details>

Environment:

-OS: Windows 11
-Compiler:  CXX GCC 15.1.0 (via MSYS2/MinGW64)
-Build System: Ninja
-Build Configuration:Release mode

Verification:
I have applied this change locally and verified that the project now builds successfully using ninja.
@google-cla

google-cla Bot commented Jul 8, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@dneto0

dneto0 commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Thanks! Please sign the CLA. I can't accept the patch without the CLA being signed.

@aka411

aka411 commented Jul 10, 2026

Copy link
Copy Markdown
Author

I have already signed the CLA, and it looks like the status check has now updated to reflect that. Thanks!

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

Successfully merging this pull request may close these issues.

2 participants