Skip to content

Build fails with gcc 11 / C++20 #1007

Closed
@urp

Description

@urp

Problem

Compiler error when including node.h with NAPI_VERSION=8:

napi.h:2477:60: error: expected unqualified-id before ‘)’ token
 2477 |     TypedThreadSafeFunction<ContextType, DataType, CallJs>();
      |                                                            ^
/home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi.h:2479:33: error: expected ‘)’ before ‘tsFunctionValue’
 2479 |         napi_threadsafe_function tsFunctionValue);
      |                                 ^~~~~~~~~~~~~~~~
      |                                 )
/home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi.h:2478:59: note: to match this ‘(’
 2478 |     TypedThreadSafeFunction<ContextType, DataType, CallJs>(
      |                                                           ^
In file included from /home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi.h:2725,
                 from /home/adiletkutmanov/Development/lauda_measurement_napi/src/lauda_measurement.cpp:1:
/home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi-inl.h:4764:8: error: no declaration matches ‘Napi::TypedThreadSafeFunction<ContextType, DataType, CallJs>::TypedThreadSafeFunction()’
 4764 | inline TypedThreadSafeFunction<ContextType, DataType, CallJs>::
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi-inl.h:4764:8: note: no functions named ‘Napi::TypedThreadSafeFunction<ContextType, DataType, CallJs>::TypedThreadSafeFunction()’
In file included from /home/adiletkutmanov/Development/lauda_measurement_napi/src/lauda_measurement.cpp:1:
/home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi.h:2347:9: note: ‘class Napi::TypedThreadSafeFunction<ContextType, DataType, CallJs>’ defined here
 2347 |   class TypedThreadSafeFunction {​​​​​​​
      |         ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi.h:2725,
                 from /home/adiletkutmanov/Development/lauda_measurement_napi/src/lauda_measurement.cpp:1:
/home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi-inl.h:4771:8: error: no declaration matches ‘Napi::TypedThreadSafeFunction<ContextType, DataType, CallJs>::TypedThreadSafeFunction(napi_threadsafe_function)’
 4771 | inline TypedThreadSafeFunction<ContextType, DataType, CallJs>::
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi-inl.h:4771:8: note: no functions named ‘Napi::TypedThreadSafeFunction<ContextType, DataType, CallJs>::TypedThreadSafeFunction(napi_threadsafe_function)’
In file included from /home/adiletkutmanov/Development/lauda_measurement_napi/src/lauda_measurement.cpp:1:
/home/adiletkutmanov/Development/lauda_measurement_napi/node_modules/node-addon-api/napi.h:2347:9: note: ‘class Napi::TypedThreadSafeFunction<ContextType, DataType, CallJs>’ defined here
 2347 |   class TypedThreadSafeFunction {​​​​​​​
      |         ^~~~~~~~~~~~~~~~~~~~~~~

Workarounds:

  • Use gcc 11 with c++17
  • Use gcc 10 with c++20

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions