Skip to content

Conversation

w1m024
Copy link

@w1m024 w1m024 commented Sep 2, 2025

Environment

  • OS: Ubuntu 24.10
  • Compiler: GCC 14
  • Commit: b47f6972e66c47f7e17a2e411ce2cac2f2eeb52b

Steps to Reproduce

  1. Create a build directory and configure the project with tests enabled:
    cmake -DENABLE_TESTS=ON ..
  2. Run the build for the test target:
    make cl_test

Observed Behavior

The compilation process fails when building src/test/document/TestDocument.cpp. The compiler reports that std::make_unique is not defined.

The key error from the compiler is:

/path/to/doris-thirdparty/src/test/document/TestDocument.cpp:69:36: error: ‘make_unique’ is not a member of ‘std’
   69 |   auto char_string_reader = std::make_unique<lucene::util::SStringReader<char>>();
      |                                   ^~~~~~~~~~~
// Compiler Note:
/path/to/doris-thirdparty/src/test/document/TestDocument.cpp:13:1: note: ‘std::make_unique’ is defined in header ‘<memory>’; this is probably fixable by adding ‘#include <memory>’
   12 | #include <nanobench.h>
  +++ |+#include <memory>
   13 |

Cause and Solution

The function std::make_unique was introduced in C++14 and is defined in the header. Newer compilers like GCC 14 are stricter about requiring explicit header includes.

Solution: Adding #include <memory> to the top of src/test/document/TestDocument.cpp resolves the compilation error.

Signed-off-by: w1m024 <[email protected]>
Co-authored-by: gong-flying <[email protected]>
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.

1 participant