×

Search anything:

Undefined reference to std::cout [FIXED]

C++

Internship at OpenGenus

Get this book -> Problems on Array: For Interviews and Competitive Programming

In this article, we have present the reason behind the error "Undefined reference to std::cout" and different approaches to fix this error.

Table of contents:

  1. Reason behind the error
  2. Fix 1: Compile with g++ or clang++
  3. Fix 2: Add header file
  4. Fix 3: For Microsoft's compiler MSVC
  5. Fix 4: Fix GCC/ G++/ Clang build

Reason behind the error

On compiling a C++ program, you may face this compilation error:

code.cpp:(.text+0x3d): undefined reference to 'std::cout'

This comes from the line:

std::cout << data << std::endl;

The reason is that the compiler is unable to find where the function cout has been defined. This is a standard C++ function.

Make sure you are working on a C++ code (not on a C code).

Fix 1: Compile with g++ or clang++

The most common problem is that you are trying to compile a C++ program with a C compiler such as gcc or clang. To compile a C++ program, we need a C++ compiler such as g++ or clang++.

If you need to use gcc, add this explicit flag -lstdc++ to include C++ standard libraries which are included automatically with g++.

gcc -lstdc++ code.c

If you are using gcc in a cmake file, use the following within cmake:

-DCMAKE_EXE_LINKER_FLAGS="-lstdc++"

The overall compilation command will be same. Just replace gcc with g++ or clang with clang++.

cout is a feature in C++ only.

g++ code.cpp
// OR
clang++ code.cpp

Fix 2: Add header file

Add this at the top of your C++ program if you missed:

#include <iostream>
using namespace std;

Compile your C++ program and the error should be fixed.

Fix 3: For Microsoft's compiler MSVC

If you are using MSVC, include the following header files:

#include "stdafx.h"
#include <iostream>

Note the order is important. This should fix the issue.

Fix 4: Fix GCC/ G++/ Clang build

If the other fixes have not worked, it is highly likely that your GCC compiler installation is broken.

The suggestion is to build GCC/G++ from source so that the compiler installation is successful and you can compile your C++ code.

With the fixes in this article at OpenGenus, this issue of "Undefined reference to std::cout" should be fixed now. Continue your development work.

Geoffrey Ziskovin

Geoffrey Ziskovin

Geoffrey Ziskovin is an American Software Developer and Author with an experience of over 30 years. He started his career with Haskell and has interviewed over 700 candidates for Fortune 500 companies

Read More

Improved & Reviewed by:


OpenGenus Foundation OpenGenus Foundation
Undefined reference to std::cout [FIXED]
Share this