programing

오류: 네임스페이스 'std'에 'remove_cv_t'라는 템플릿이 없습니다. 'remove_cv'를 의미합니까?

subpage 2023. 5. 24. 22:10
반응형

오류: 네임스페이스 'std'에 'remove_cv_t'라는 템플릿이 없습니다. 'remove_cv'를 의미합니까?

실행 시 문제가 발생한다는 점을 제외하고는 이 문제와 유사한 것 같습니다.yarn install레일 앱에서.

가 행할때실을 할 때.yarn install얼마 동안 성공적으로 실행되면, 그 다음과 같습니다.

../src/libsass/src/ast.hpp:1614:25: warning: loop variable 'numerator' of type 'const std::__1::basic_string<char>' creates a copy from type 'const std::__1::basic_string<char>' [-Wrange-loop-analysis]
        for (const auto numerator : numerators)
                        ^
../src/libsass/src/ast.hpp:1614:14: note: use reference type 'const std::__1::basic_string<char> &' to prevent copying
        for (const auto numerator : numerators)
             ^~~~~~~~~~~~~~~~~~~~~~
                        &
../src/libsass/src/ast.hpp:1616:25: warning: loop variable 'denominator' of type 'const std::__1::basic_string<char>' creates a copy from type 'const std::__1::basic_string<char>' [-Wrange-loop-analysis]
        for (const auto denominator : denominators)
                        ^
../src/libsass/src/ast.hpp:1616:14: note: use reference type 'const std::__1::basic_string<char> &' to prevent copying
        for (const auto denominator : denominators)
             ^~~~~~~~~~~~~~~~~~~~~~~~
                        &
2 warnings generated.
  rm -f Release/sass.a && ./gyp-mac-tool filter-libtool libtool  -static -o Release/sass.a Release/obj.target/libsass/src/libsass/src/ast.o Release/obj.target/libsass/src/libsass/src/ast_fwd_decl.o Release/obj.target/libsass/src/libsass/src/backtrace.o Release/obj.target/libsass/src/libsass/src/base64vlq.o Release/obj.target/libsass/src/libsass/src/bind.o Release/obj.target/libsass/src/libsass/src/cencode.o Release/obj.target/libsass/src/libsass/src/check_nesting.o Release/obj.target/libsass/src/libsass/src/color_maps.o Release/obj.target/libsass/src/libsass/src/constants.o Release/obj.target/libsass/src/libsass/src/context.o Release/obj.target/libsass/src/libsass/src/cssize.o Release/obj.target/libsass/src/libsass/src/emitter.o Release/obj.target/libsass/src/libsass/src/environment.o Release/obj.target/libsass/src/libsass/src/error_handling.o Release/obj.target/libsass/src/libsass/src/eval.o Release/obj.target/libsass/src/libsass/src/expand.o Release/obj.target/libsass/src/libsass/src/extend.o Release/obj.target/libsass/src/libsass/src/file.o Release/obj.target/libsass/src/libsass/src/functions.o Release/obj.target/libsass/src/libsass/src/inspect.o Release/obj.target/libsass/src/libsass/src/json.o Release/obj.target/libsass/src/libsass/src/lexer.o Release/obj.target/libsass/src/libsass/src/listize.o Release/obj.target/libsass/src/libsass/src/memory/SharedPtr.o Release/obj.target/libsass/src/libsass/src/node.o Release/obj.target/libsass/src/libsass/src/operators.o Release/obj.target/libsass/src/libsass/src/output.o Release/obj.target/libsass/src/libsass/src/parser.o Release/obj.target/libsass/src/libsass/src/plugins.o Release/obj.target/libsass/src/libsass/src/position.o Release/obj.target/libsass/src/libsass/src/prelexer.o Release/obj.target/libsass/src/libsass/src/remove_placeholders.o Release/obj.target/libsass/src/libsass/src/sass.o Release/obj.target/libsass/src/libsass/src/sass2scss.o Release/obj.target/libsass/src/libsass/src/sass_context.o Release/obj.target/libsass/src/libsass/src/sass_functions.o Release/obj.target/libsass/src/libsass/src/sass_util.o Release/obj.target/libsass/src/libsass/src/sass_values.o Release/obj.target/libsass/src/libsass/src/source_map.o Release/obj.target/libsass/src/libsass/src/subset_map.o Release/obj.target/libsass/src/libsass/src/to_c.o Release/obj.target/libsass/src/libsass/src/to_value.o Release/obj.target/libsass/src/libsass/src/units.o Release/obj.target/libsass/src/libsass/src/utf8_string.o Release/obj.target/libsass/src/libsass/src/util.o Release/obj.target/libsass/src/libsass/src/values.o
  c++ '-DNODE_GYP_MODULE_NAME=binding' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/st/.node-gyp/16.0.0/include/node -I/Users/st/.node-gyp/16.0.0/src -I/Users/st/.node-gyp/16.0.0/deps/openssl/config -I/Users/st/.node-gyp/16.0.0/deps/openssl/openssl/include -I/Users/st/.node-gyp/16.0.0/deps/uv/include -I/Users/st/.node-gyp/16.0.0/deps/zlib -I/Users/st/.node-gyp/16.0.0/deps/v8/include -I../../nan -I../src/libsass/include  -O3 -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=c++11 -stdlib=libc++ -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/binding/src/binding.o.d.raw   -c -o Release/obj.target/binding/src/binding.o ../src/binding.cpp
In file included from ../src/binding.cpp:1:
In file included from ../../nan/nan.h:56:
In file included from /Users/st/.node-gyp/16.0.0/include/node/node.h:63:
In file included from /Users/st/.node-gyp/16.0.0/include/node/v8.h:30:
/Users/st/.node-gyp/16.0.0/include/node/v8-internal.h:452:38: error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'?
            !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
                                ~~~~~^~~~~~~~~~~
                                     remove_cv
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/type_traits:697:50: note: 'remove_cv' declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_cv
                                                 ^
1 error generated.
make: *** [Release/obj.target/binding/src/binding.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/st/rails/myapp/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (node:events:365:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp ERR! System Darwin 20.3.0
gyp ERR! command "/usr/local/Cellar/node/16.0.0/bin/node" "/Users/st/rails/myapp/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /Users/st/rails/myapp/node_modules/node-sass
gyp ERR! node -v v16.0.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 

이 문제를 해결할 방법이 있습니까? (xcode/node/rails/c++의 문제인지조차 잘 모르겠습니다.)

기타 참고 사항

  • /usr/bin/xcodebuild -version
Xcode 12.4
Build version 12D4e
  • cpp --version
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin20.3.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

참고:저는 cpp에서 코딩을 하지 않기 때문에 해결 방법에 대한 문맥적 지식이 거의 없습니다.

업데이트: 노드-ass 버전 6.0.1 이후, 노드 16이 지원됩니다.노드-ass를 6.0.1보다 높은 버전으로 업데이트하면 이 문제가 해결됩니다.


노드-ass를 컴파일하는 동안 오류가 발생했습니다.이것은 C++로 작성되어 자바스크립트 라이브러리로만 재패키지된 Sass/SCSS 스타일을 처리하는 패키지입니다.C++로 작성되었다는 사실은 설치하는 동안 장치에서 컴파일해야 한다는 것을 의미합니다(이것은 내부적으로 오류 출력에서도 찾을 수 있는 노드집프라는 도구에 의해 수행됨).

문제는 노드 프로토콜이 이 답변을 작성할 때 노드 16을 지원하지 않는다는 것입니다. 추적 문제를 참조하십시오. https://github.com/sass/node-sass/issues/3077 언제 지원할 것인지에 대한 추정치가 없습니다(자원봉사자 주도 프로젝트이기 때문에 공정합니다).노드 16에 노드-ass를 설치하는 데 성공하더라도 동작이 정의되지 않을 수 있으므로 이에 반대하는 것이 좋습니다.

올바른 솔루션은 노드 설치를 지원되는 버전으로 다운그레이드하는 것입니다(CI에서 14번과 15번 모두 테스트된 것으로 확인됨).프로젝트를 복제했는데 시스템에 설치하지 않고 동료나 프로덕션 서버에 설치할 수 있다면 프로젝트가 다른 버전의 노드를 염두에 두고 있을 가능성이 높고 노드 16에서 테스트되지 않았기 때문에 어쨌든 노드 16에서 개발하지 않는 것이 좋습니다.프로젝트가 며칠 전까지만 해도 효과가 있었지만 지금은 효과가 없다면 최근 시스템 설정(예: Homebrew)을 업그레이드하여 노드 16으로 업그레이드했을 가능성이 높습니다.

프로젝트 작성자에게 해당 노드가 실행되는 운영 서버 버전이 무엇인지 확인하고 해당 버전도 로컬로 설치해야 합니다.향후에는 프로덕션 버전과 로컬 버전의 노드(실 또는 npm)를 동기화하는 것이 좋습니다.여러 노드 버전을 관리하는 경우 이 도구를 사용할 수 있습니다. https://github.com/nvm-sh/nvm

업데이트 - 간단한 수정!

노드 16을 계속 사용할 수 있는 쉬운 해결 방법이 있습니다.

  1. yarn.lock
  2. 을 엽니다.package.json 버전을 사용해야 합니다.5.4.3 - 이 ("node-discovery" - "node-discovery")
  3. 려달을 합니다.yarn install
  4. 레일 서버를 시작하면 모든 것이 정상으로 돌아갈 것입니다!

다음은 훨씬 더 긴 이전 답변입니다(아직 유용한 경우).

노드-모뎀이 아직 노드 v16과 호환되지 않습니다.

이 문제를 해결하려면 노드-ass가 v16과 호환될 때까지 노드를 버전 14로 다운그레이드합니다.nvm을 사용하여 노드를 다운그레이드하려면 다음을 실행합니다.

nvm install 14

다음을 실행하여 버전 14를 전체적으로 설정합니다(각 새 터미널 창이 기본적으로 노드 버전 14로 설정되도록).

nvm alias default 14

이제 노드 14를 설치하고 기본값으로 설정했습니다! ..이제 앱에서 v14를 사용하도록 만들기만 하면 됩니다.


레일 앱이 노드 14를 사용하도록 만드는 방법

노드 14를 설치합니다(위 참조).터미널을 열고 앱의 루트 디렉터리로 이동한 다음:

  1. 실행 중인 경우 레일 서버 중지
  2. 새 터미널 창을 엽니다(그러면node --version아온다를 합니다.14.x(16개 아님)
  3. 려달을 합니다.spring stop
  4. yarn.lock
  5. 를 사용하여 기존 노드 rm -rf node_modules
  6. 을 확인하세요 ㅠㅠnode --version14를 반환합니다.실되지않경우는행경우.nvm install 14한 번
  7. 을 이모듈다설치다로 다시 합니다.yarn install 14 (node 14 용 yarn)과 함께 합니다.npm install --global yarn)
  8. 성공해야 합니다!
  9. 레일 서버를 다시 시작하면 작동합니다!

특히 herku에서 이 문제가 발생할 경우 웹 패키지가 최신 상태인지 확인하십시오.

yarn upgrade @rails/webpacker --latest

동일한 문제입니다. 이 문제로 인해 다음과 같은 문제가 해결됩니다.

CXXFLAGS="--std=c++17" yarn install

노드 v14 LTS 사용node-sass:

brew install node@14
brew unlink node
brew link node@14
node -v
spring stop

레일즈 프로젝트에서 실행:

yarn install

PS: 노드 16에 node-message https://github.com/nodejs/node/issues/38367#issuecomment-825461899 오류가 있습니다.

사용해 보십시오.

export CXXFLAGS="--std=c++17" && npm install

빌드하는 동안 이 오류가 발생했습니다.node-sass.

/Users/shahwarkhalid/.node-gyp/16.6.1/include/node/v8-internal.h:488:38: error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'?

이 해킹으로 문제가 해결되었습니다.

cd /Users/shahwarkhalid/.node-gyp/16.6.1/include/node/

다열v8-internal.h편집자에게 줄을 대다

remove_cv_tremove_cv488.488입니다.

yarn install문제가 해결되었습니다.

질문에 로, 의 이질에대답일이로후새, 버의전운로부한의문▁since.node-sass(v6노드 16에 대한 지원을 추가하여 문제를 해결하는 )가 릴리스되었습니다.

의 경우,는 Rails의 버전에 .node-sass의 버전 때문에@rails/webpacker나는 내 안에 있었습니다.package.json(4.3.0의 버전으로 하는 중, ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.4.0문제를 해결했습니다.

▁with▁version다로 현재 버전을 .cpp --version은 는이를 줍니다.

cpp --version Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin20.3.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

컴파일러 버전이 C++ 표준 버전이 아닙니다.

전자는 도구의 버전이고 후자는 C++ 표준의 버전입니다.

한편, 최근의 모든 주요 C++ 컴파일러는 여러 C++ 표준을 지원합니다.

C++ 표준은 특정 컴파일러에 구애받지 않고 휴대용(표준 적합) 코드를 개발해야 하는 경우에 중요합니다.이를 통해 서로 다른 컴파일러로 컴파일된 여러 플랫폼용 코드를 개발할 수 있습니다.또한 더 나은 품질로 개발하는 데 도움이 됩니다. 즉, 한 공급업체의 컴파일러에서 코드의 약점이 간과될 수 있으며(즉, 허용될 수 있음) 다른 공급업체의 컴파일러에서 불만이 제기될 수 있습니다.

컴파일러에서 C++ 표준을 명시적으로 선택하는 것도 중요합니다.

  • 컴파일러에서 지원되는 최신 표준은 여전히 실험 상태일 수 있습니다.
  • 개발자는 (사용 가능한 컴파일러가 최신 C++ 표준을 지원하지 않는 다른 플랫폼과의 호환성을 유지하기 위해) 특정 (구형) 표준을 기반으로 개발할 수 있으며 새로운 항목이 유입되지 않도록 보장하고자 합니다.

특정 컴파일러 버전의 컴파일러는 일반적으로 특정 C++ 표준을 기본값으로 사용합니다.또는 온라인.)그럼에도 불구하고, 이것이 반드시 지원되는 최신 C++ 표준은 아닙니다.

C++ 표준의 명시적인 선택은 명령줄 인수를 사용하여 수행할 수 있습니다.

  • 및 g++ 및 clang:-std= 다른 도 마찬가지일 것입니다
  • MSVC:/std:.

g++ -std=c++14C++14 표준에 강제로 G++를 호출합니다.

이 명령줄 인수가 모든 컴파일러/벤더에 대해 문자 그대로 동일하지 않다는 것은 약간 슬픈 일입니다.따라서 사용되는 빌드 도구에서 필요한 C++ 표준을 정의하는 것이 더 편리합니다.(빌트된 도구는 발견된/사용된 컴파일러에 따라 적절한 명령줄 인수를 선택하도록 주의를 기울입니다.)

(일상 업무에서 사용하는) Cmake의 경우, 이것은

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

(코너 케이스의 경우, 제가 힘들게 알게 된 것처럼 추가 설정이 필요할 수 있습니다: SO: 정적 멤버로 멤버 변수에 대한 포인터.)

OP는 실을 사용합니다, 저는 인정하건대 전에 들어본 적이 없습니다.

그는 보고했습니다.yarn install -std=c++17그의 문제를 해결했습니다.(나는 이 온라인에 대한 일종의 문서를 찾으려고 했지만 실패했습니다.)

@murb와 유사하게, 저는 일전에 제 빌드 박스에서 브루 업데이트를 실행했고 노드 16이 설치된 것을 발견했습니다.전체 빌드 시스템을 업데이트하여 최신 버전의 노드에서 제대로 작동할 수 있을 때까지 노드 12에 다시 설치하여 문제를 해결했습니다.

16번 노드에도 같은 문제가 있었습니다.14번 노드로 다운그레이드하는 것이 저에게는 잘 작동했습니다.다음은 동일한 작업을 수행하는 방법에 대한 간단한 단계입니다(홈브루 사용).

  • 현재 노드 버전 확인

    node -v 
    
  • 사용 가능한 노드 버전 확인

    brew search node
    
  • 현재 버전에서 링크를 해제하려면 다음과 같이 하십시오.

    brew unlink node
    
  • 다음 명령을 사용하여 원하는 버전을 설치합니다(예: 버전 14).

    brew install node@14
    
  • 설치된 버전에 연결

    brew link node@14
    

마지막으로 첫 번째 단계의 명령을 사용하여 올바른 버전의 설치를 수행하십시오.

이 문제에 대한 직접적인 대답은 아니지만 TravisCI에서 실패한 빌드를 디버깅하는 동안 이 문제를 발견하여 수정해야 할 커밋을 꽤 많이 밀어 넣었습니다.저에게 그것은 노드 16이 며칠 전에 출시되었기 때문입니다.사용 중임을 알아차렸습니다.nvm install nodebefore_script에서, 이는 항상 최신으로 기본 설정됩니다.nvm install실제로 에 명시된 버전을 준수합니다..nvmrc오래된 버전의 무언가를 사용하는 것이 장기적인 해결책은 아니지만,yarn install -std=c++14이미 그 선에서 나에게 실패했습니다.

최근 출시된 노드 16에 대한 지원이 추가된 node-sass@6으로 업그레이드

나는 그것에 대해 모릅니다.const auto numerator.

근데 제가 편집했을 때는.~/Library/Caches/node-gyp/16.4.0/include/node/v8-internal.h(디렉토리가 다른 디렉토리를 가지고 있습니다) 제 터미널 오류에 나와 있는 것처럼, 오류 없이 컴파일이 진행됩니다.

내 솔루션:

이름 변경remove_cv_t로.remove_cv오류 메시지에 표시된 대로 표시됩니다.

그런 다음 컴파일을 진행합니다.


제가 이 임시 수정 후에 계획하는 것은 ngxcode 업데이트입니다.오류 메시지에 표시된 대로 업데이트된 템플릿 정의가 있을 수 있습니다.

template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_cv

Apple M1 칩의 경우 작동 방식은 다음과 같습니다.

sudo xcode-select --install
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
nvm install v15
nvm cache clear

제 경우에는 노드를 12개에서 10개로 전환했습니다.

nvm use 10

언급URL : https://stackoverflow.com/questions/67241196/error-no-template-named-remove-cv-t-in-namespace-std-did-you-mean-remove

반응형