socratic
socratic

Reputation: 13

Error using clang to compile c++

I have been trying to compile a simple hello world program in c++ using clang. Now in the past I have been able to do this using the command:

clang -lc++ hello.cpp -o hello

When I try this I get the error:

/usr/bin/ld: cannot find -lc++

Clang: error : linker command failed with exit code 1

If I use g++ it compiles without errors. Why is this problem occurring with clang?

Upvotes: 0

Views: 1757

Answers (2)

ForceBru
ForceBru

Reputation: 44830

Clang compiles C language and Clang++ compiles C++. Those are different languages, so you need a separate compiler for each of them.

Some time ago I was having trouble with this as well. I tried linking loads of libraries (-lstdc++ etc), building stdlib from source, etc, but nothing worked. This was a judge problem until I realized that I had to use clang++.

So you too, you need clang++, not clang.

Upvotes: -1

Eray Balkanli
Eray Balkanli

Reputation: 7960

You need to install libc++ library.

Try if are using ubuntu:

sudo bash -c "cat >> /etc/apt/sources.list" << LLVMAPT
# LLVM
deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty main
deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty main
# 3.5 
deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.5 main
deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.5 main
# 3.6 
deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.6 main
deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.6 main
LLVMAPT

wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add -

sudo apt-get update -y
sudo apt-get install -y clang-3.6 lldb-3.6 libc++-dev libc++abi-dev

If the script above doesnt work or you do not use ubuntu then please check this websites to download that library:

http://libcxx.llvm.org/

http://libcxx.llvm.org/docs/BuildingLibcxx.html

Upvotes: 2

Related Questions