gcc 로 c++ 코드를 컴파일하려고 하는데 잘 안됩니다.

vudghkzm의 이미지

gcc version 3.3.5 를 사용중입니다.

c++ 코드를 컴파일할 때, g++ 명령을 사용했었습니다. 근데 gcc 라는게 GNU Compiler Collection 이란 말을 듣고나서 gcc 명령으로 c++ 코드를 컴파일할 수 있을 거란 생각을 했습니다.

#include <cstdlib>
#include <string>
#include <iostream>
 
using namespace std;
 
int main() {
    const string message = "Hello, World";
 
    cout << message << endl;
 
    return EXIT_SUCCESS;
}

위의 코드(test.cc 파일)를 컴파일 하기 위해서 아래의 명령을 실행했더니 오류가 발생하네요.

$ gcc -ansi -std=c++98 -Wall -o test.o test.cc

그런데 gcc 를 g++ 로 바꾸어서 실행했더니 올바로 컴파일이 되네요.

$ g++ -ansi -std=c++98 -Wall -o test.o test.cc

gcc 라는 명령어로는 c++ 코드를 컴파일할 수 없는건가요? 아니면 어떤 옵션을 주어야지만 g++ 로 동작을 하는 것인가요?

IDNed의 이미지

gcc는 cc(C Compiler)이고 g++는 C++ Compiler입니다.

패키지부터가 다른걸로 압니다만...

gcc는 gcc-core이고 g++는 gcc-c++...

맞나? -_- mingw 패키징밖에 아직 못봐서 -_-

최근원의 이미지

네 맞습니다 ㅋ^^

욱성군의 이미지

gcc 는 gnu compiler collection 이 맞구요 명령어 gcc 는 c compiler 일거에요.

gnu 가 비슷한 이름짓기 방법중 하나죠. GNU is Not Unix 가 GNU 이니까요 =3

Pick me, Choose me, Love me.

http://www.lastpiece.us

욱성군의 이미지

gcc 는 gnu compiler collection 이 맞구요 명령어 gcc 는 c compiler 일거에요.

gnu 가 비슷한 이름짓기 방법중 하나죠. GNU is Not Unix 가 GNU 이니까요 =3

Pick me, Choose me, Love me.

http://www.lastpiece.us

dalmagi의 이미지

gcc -x c++ test.cc
옵션을 주어야 하는걸로 알고 있습니다만, 되지는 않더군요.
왜 그런지는 저도 잘..

Fly me to the moon, and let me exit the world.

화이팅(fighting) 말고 화이트닝(whitening) 하면 안되나요.

ixevexi의 이미지

확실히 방문자가 줄었나봐요 ㅠ.ㅜ 답글도 잘 안달리고

답변을 하자면
gcc는 gnu complier collection이 맞고

그러므로 gcc -lstdc++ 옵션을 쓰면 문제없이 컴파일 가능합니다

C++, 그리고 C++....
죽어도 C++

C++, 그리고 C++....
죽어도 C++

익명의 이미지

gcc -ansi -std=c++98 -Wall -o test.o test.cc -lstdc++