이것이 예일까요?
#include <iostream>
using namespace std;
int main()
{
cout << "Hola, moondo.\n";
}
오류가 발생합니다.
gcc -c main.cpp gcc -o edit main.o main.o: In function `main':
main.cpp:(.text+0xa): undefined reference to `std::cout'
main.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char,std::char_traits<char> >& std::operator<< <std::char_traits<char>>(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
main.o: In function `__static_initialization_and_destruction_0(int,int)':
main.cpp:(.text+0x3d): undefined reference to `std::ios_base::Init::Init()'
main.cpp:(.text+0x4c): undefined reference to `std::ios_base::Init::~Init()' collect2: error: ld
returned 1 exit status make: *** [qs] Error 1
또한이 예는 다음과 같습니다.
#include <iostream>
int main()
{
std::cout<<"Hola, moondo.\n";
}
오류가 발생합니다.
gcc -c main.cpp gcc -o edit main.o main.o: In function `main':
main.cpp:(.text+0xa): undefined reference to `std::cout'
main.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char,std::char_traits<char> >& std::operator<<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char> >&, char const*)'
main.o: In function `__static_initialization_and_destruction_0(int,int)': main.cpp:(.text+0x3d): undefined reference to `std::ios_base::Init::Init()'
main.cpp:(.text+0x4c): undefined reference to `std::ios_base::Init::~Init()' collect2: error: ld
returned 1 exit status make: *** [qs] Error 1
참고 : Debian Wheezy를 사용하고 있습니다.
답변
다음을 사용하여 프로그램을 컴파일하십시오.
g++ -Wall -Wextra -Werror -c main.cpp -o main.o
^^^^^^^^^^^^^^^^^^^^ <- For listing all warnings when your code is compiled.
등의 cout
필요가 C ++ 표준 라이브러리에 존재하는 명시 적 링크 와 함께 -lstdc++
사용하는 경우를 gcc
; g++
기본적으로 표준 라이브러리를 연결합니다.
으로 gcc
( g++
보다 선호해야 함 gcc
)
gcc main.cpp -lstdc++ -o main.o
답변
예, g++
명령을 사용 하면 나를 위해 일했습니다.
g++ my_source_code.cpp
답변
메이크 파일
makefile로 작업하고 있고 나처럼 여기에 있다면, 이것은 아마도 당신이 찾고있는 것입니다.
메이크 파일을 사용하는 경우 cc
아래와 같이 변경해야 합니다.
my_executable : main.o
cc -o my_executable main.o
에
CC = g++
my_executable : main.o
$(CC) -o my_executable main.o