• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

링크가 안됩니다

23.04.17 11:07 작성 조회수 280

2

아래 코드 진행하면 clang: error: linker command failed with exit code 1 (use -v to see invocation)

이런 메세지가 뜹니다.

 

## head.h
#pragma once

// global constant
namespace Constants
{
    const double pi(3.141592);
    const double gravity(9.8);
    // ...
}

----

## test.cpp
#include <iostream>
#include "head.h"

using namespace std;
void dosomething2()
{
    cout << "in test" << Constants::gravity << " " << &Constants::gravity << endl;
}

---

## main.cpp
#include <iostream>
#include "head.h"

using namespace std;

void doSomething2();

int main()
{
    cout << "in main" << Constants::gravity << " " << &Constants::gravity << endl;
    doSomething2();
}

원인을 모르겠습니다 ㅠㅠ

 

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2023.04.17

안녕하세요, 답변 도우미 Soobak 입니다. 😀

말씀해주신 내용만으로 유추해보면, 사용하신 컴파일러가 clang++ 이 아니라, clang 이어서 발생한 문제로 보입니다. 질문주신 코드는 강의에서 사용된 코드와 일치합니다. 따라서, 만약 clang 으로 컴파일 하신 것이 맞다면, 링커가 필요한 표준 C++ 라이브러리를 찾지 못해서 발생한 문제입니다. 저도 같은 코드를 clang 으로 컴파일하면 질문자님과 동일한 오류가 발생하는 것을 확인했습니다.

만약, clang++ 컴파일러 외에도 g++ , Visual Studio 등의 다른 컴파일러 사용에서도 같은 문제가 발생하신다면, 에러 메세지의 전문을 첨부해시면 제가 더 자세히 도와드릴 수 있을 것 같습니다.
👍