Đây có phải là ví dụ:
#include <iostream>
using namespace std;
int main()
{
cout << "Hola, moondo.\n";
}
Nó ném lỗi:
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
Ngoài ra, ví dụ này:
#include <iostream>
int main()
{
std::cout<<"Hola, moondo.\n";
}
ném lỗi:
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
Lưu ý: Tôi đang sử dụng Debian Wheezy.
Vâng, điều đó chắc chắn đã giải quyết vấn đề. Theo tôi hiểu, GCC là từ viết tắt của Bộ sưu tập trình biên dịch Gnu. Không nên gọi trình biên dịch g ++ khi cần? Vì vậy, lệnh gcc gọi trình biên dịch c thay vì ...
—
D1X
@ D1X là vì bạn đã gọi trình liên kết riêng biệt với trình biên dịch. Khi bạn viết
—
MM
gcc -o edit main.o
nó không biết rằng main.o
sẽ cần thư viện khởi động C ++.
Q: Không nên gọi trình biên dịch g ++ khi cần? A: Không nhiều hơn gcc nên gọi gfortran, gjc, ... vv, nếu cần.
—
paulsm4 16/07/2015
g++
thay vìgcc
.gcc
dành cho C và sẽ không cấp cho bạn quyền truy cập vào thư viện chuẩn C ++.