23.04.17 11:07 작성
·
310
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 입니다. 😀
말씀해주신 내용만으로 유추해보면, 사용하신 컴파일러가 clang++
이 아니라, clang
이어서 발생한 문제로 보입니다. 질문주신 코드는 강의에서 사용된 코드와 일치합니다. 따라서, 만약 clang
으로 컴파일 하신 것이 맞다면, 링커가 필요한 표준 C++ 라이브러리를 찾지 못해서 발생한 문제입니다. 저도 같은 코드를 clang
으로 컴파일하면 질문자님과 동일한 오류가 발생하는 것을 확인했습니다.
만약, clang++
컴파일러 외에도 g++
, Visual Studio
등의 다른 컴파일러 사용에서도 같은 문제가 발생하신다면, 에러 메세지의 전문을 첨부해시면 제가 더 자세히 도와드릴 수 있을 것 같습니다.
👍