[Clang] C++ 빌드 시 undefined reference error 해결 방법

2023. 12. 2. 22:15·개발/C, C++
반응형

제가 WSL을 여러 번 설치하고 CMake로 빌드하면서 겪었던 상황과 문제에 대해서 공유해 보도록 하겠습니다.

 

 

WSL, CMake 빌드 시 undefined reference error 해결 방법

 

 

 

 

 1. 필수 standard lib 설치 및 지정 필요

 

아래와 같은 기본적인 명령어를 알지 못한다면 기본적으로 clang 설치 후 build-essential, libc++-10-dev 와 같은 라이브러리들을 설치하지 않아서 발생한 문제일 경우가 있습니다.

undefined reference to `operator new
undefined reference to `std::cout'

 

이 경우 clang version에 따라 아래와 같이 설치를 할 필요가 있습니다.

sudo apt install libstdc++-10-dev

 

 

 

 2. 만약 설치가 되어 있는데 적용이 되지 않는 다면

 

1번에서 해당 라이브러리들이 설치가 되어 있는데 적용이 되지 않는다고 한다면 링크가 잘 되지 않는 문제일 수가 있습니다. 따라서 옵션에 직접 추가를 해주는 방법이 있습니다.

CMake에서는 아래와 같이 flag를 추가해 주어서 지정해 줄 수 있습니다.

set(CMAKE_CXX_FLAGS "-stdlib=libc++")

 

 

 

 3. 만약 그래도 해결되지 않는 다면

 

제가 했던 기본적인 실수이기도 한데, CXX 컴파일러에 그냥 clang으로 입력한 경우입니다.

set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang)

 

위와 같이 설정하면 cpp를 빌드할 때 c언어용 라이브러리를 인식하려고 해서인지 제대로 인식이 되지 않는 것 같았습니다.

따라서 아래와 같이 정상적으로 수정하면 해결되는 것을 확인했습니다.

set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)

 

 

 결론

 

가장 기본적인 실수를 한 뒤 이후 여러 가지를 시도하면서 시간낭비를 한 경험입니다. 여러분들을 부디 이런 실수를 하지 않기를 바라면서 글을 남겨봅니다.

'개발 > C, C++' 카테고리의 다른 글

[C++] STL 컨테이너 unordered set, unordered map 사용법, 차이점  (0) 2023.11.21
[C++] class 생성자에서 explicit 키워드의 의미  (0) 2023.09.05
[C++] STL 컨테이너 Set과 Map 활용법과 차이점  (0) 2023.09.02
[C++] STL 컨테이너 Vector 의 용도와 특징, 사용 예제  (0) 2023.09.01
[C++] 생성자에서 virtual 가상 함수 호출하는 경우의 문제  (0) 2023.08.11
'개발/C, C++' 카테고리의 다른 글
  • [C++] STL 컨테이너 unordered set, unordered map 사용법, 차이점
  • [C++] class 생성자에서 explicit 키워드의 의미
  • [C++] STL 컨테이너 Set과 Map 활용법과 차이점
  • [C++] STL 컨테이너 Vector 의 용도와 특징, 사용 예제
growing-dev
growing-dev
S/W 개발 관련 내용들과 취미나 육아, 맛집 등 관심 있는 내용을 공유하는 블로그입니다.
    반응형
  • growing-dev
    성장하는 개발자 블로그
    growing-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 개발
        • 개발 공통
        • 개발 환경
        • Git
        • 자료구조, 알고리즘
        • C, C++
        • Python
        • DevOps
        • CMake
      • 공부
        • 영어
        • 경제
      • 취미, 육아 N
        • 육아
      • 생활정보
  • 블로그 메뉴

    • 홈
  • 링크

    • growing-dev GitHub
  • 공지사항

    • [블로그 시작] 성장하는 개발자 스토리입니다.
  • 인기 글

  • 태그

    VS Code
    오픽
    앨리웨이
    하이볼
    C++
    티스토리챌린지
    프로그래머스
    필스너
    TDD
    소프티어
    CMake
    Clang
    생산성
    키즈카페
    Python
    오블완
    dfs
    WSL
    git
    OPIC
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
growing-dev
[Clang] C++ 빌드 시 undefined reference error 해결 방법
상단으로

티스토리툴바