[cfe-dev] clang++ doesn't seem to search CMAKE_INSTALL_PREFIX/lib
David Sanderson via cfe-dev
cfe-dev at lists.llvm.org
Wed Jan 13 18:42:30 PST 2016
My apologies for this newbie question. I was unable to discover the answer
in the clang and cmake documents.
I have built my own copy of llvm/clang 3.7.0 on FreeBSD 10.1. In the llvm
projects directory, I populated compiler-rt, libcxx, and libunwind, also
version 3.7.0.
I then built and installed with
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$top -DCMAKE_VERBOSE_MAKEFILE=on
-DLLVM_TARGETS_TO_BUILD=host ../$llvm_unpack &&
cmake --build .
cmake --build . --target install
When I try to build using the installed compiler, it is unable to find the
libc++ that it just installed:
$top/bin/clang++ -v -o hello hello.cc
clang version 3.7.0
(tags/RELEASE_370/final)
Target: x86_64-unknown-freebsd10.1
Thread model: posix
"/usr0/dws/llvm-3.7/top/bin/clang-3.7" -cc1 -triple
x86_64-unknown-freebsd10.1 -emit-obj -mrelax-all -disable-free
-main-file-name hello.cc -mrelocation-model static -mthread-model posix
-mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables
-target-cpu x86-64 -v -dwarf-column-info -resource-dir
/usr0/dws/llvm-3.7/top/bin/../lib/clang/3.7.0 -internal-isystem
/usr/include/c++/v1 -fdeprecated-macro -fdebug-compilation-dir
/usr0/dws/llvm-3.7 -ferror-limit 19 -fmessage-length 167 -mstackrealign
-fobjc-runtime=gnustep -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -o /tmp/hello-4b055a.o -x c++
hello.cc
clang -cc1 version 3.7.0 based upon LLVM 3.7.0 default target
x86_64-unknown-freebsd10.1
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/v1
/usr0/dws/llvm-3.7/top/bin/../lib/clang/3.7.0/include
/usr/include
End of search list.
"/usr/bin/ld" --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1
--hash-style=both --enable-new-dtags -o hello /usr/lib/crt1.o
/usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib /tmp/hello-4b055a.o -lc++
-lm -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s
--no-as-needed /usr/lib/crtend.o /usr/lib/crtn.o
/usr/bin/ld: cannot find -lc++
clang-3.7: error: linker command failed with exit code 1 (use -v to see
invocation)
In order to expose this problem, I moved aside the /usr/lib/libc++* files
on the system. Prior to that, this compiler was silently using the
system's own libc++ library instead of the one that was built and installed
along with the compiler.
I was expecting that the compiler would pay attention to the
CMAKE_INSTALL_PREFIX that it was built with.
What's the proper way (or at least, the expected way) to get clang++ to pay
attention to the CMAKE_INSTALL_PREFIX that it was built with?
Regards,
David Sanderson (yelliott at gmail.com)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160113/dff19c37/attachment.html>
More information about the cfe-dev
mailing list