[llvm-dev] Linker errors after installing/compiling LLVM/CLANG

Neil Nelson via llvm-dev llvm-dev at lists.llvm.org
Sat Jul 6 14:49:33 PDT 2019


Joan,

Just completed a good clang compile built from a mostly vanilla Xubuntu 
19.04 VM, installed the llvm-needed Ubuntu packages, downloaded a new 
copy of llvm using the noted llvm install page, configured using

cmake -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_USE_LINKER=lld 
-DCMAKE_BUILD_TYPE="Release" 
-DCMAKE_INSTALL_PREFIX=/home/nnelson/Documents/llvm/install ../llvm &> 
cmake.log

which is primarily different from yours where I am using a 'Release' 
build to avoid the much larger memory and disk usage of a 'Debug' build. 
The 'ninja install' command put everything in llvm/install as expected 
including clang. I look through cmake.log to see if there are errors 
that need to be corrected.

My differences appear to be Xubuntu, the packages, ninja, and the cmake 
line.

On Linux I can use

ninja &> ninja_compile.log

to look at the compile history and see if something went wrong.

Neil

On 7/6/19 12:00 AM, Joan Lluch wrote:
> Hi Nelson,
>
> Thanks for your reply.
>
> The “build/Debug/lib” and "build/Release/lib” directories is where all 
> the libraries go. Similarly, the executables go to “build/Debug/bin” 
> and “build/Release/bin” before they are moved to the install 
> directory. This is expected and normal. However, the problem is that a 
> small number of libraries (exactly 20 in total) are not created at all 
> for the LLVM 9.0 version that I cloned from gitHub. These libraries 
> are in fact not created anywhere!.
>
> I still have LLVM 7.0 installed in my computer and the libraries for 
> that version are all there in the right places under the LLMV 7.0 
> directory, but in that case I installed it all in a different way as I 
> said, loosing the benefits of git.
>
> I forgot to mention that “llc” alone compiles and links correctly 
> without any issue. The problem is only when I try to get ‘clang’ compiled.
>
> You mention that you enabled a lot of projects: 
>  "clang;clang-tools-extra;compiler-rt;debuginfo-tests;libclc;libcxx;libcxxabi;libunwind;lld;lldb;llvm;openmp;parallel-libs;polly;pstl”. 
> I only really need the basic installation of “clang”, and I do not 
> need any testing tools because all I want is to add my custom target 
> to it. I also tried "clang;libclc;libcxx” but the problem with the 
> missing libraries is exactly the same.
>
> Just as a matter of information: I successfully implemented a custom 
> target backend, and have it almost finished and running perfectly on 
> LLVM 7.0. Now, I just want to move it to LLVM 9.0, but got stuck in 
> what is supposed to be the easiest part which is just compiling it 
> (??), but I do not understand why it doesn’t compile!
>
> Any ideas?
>
> Joan
>
>> John, I compiled and installed to /usr/local all the projects under 
>> llvm except llgo yesterday. The three files you noted are in
>> ../llvm-project/build/lib
>> I do not have a llvm-project/build/Debug directory.
>> Xubuntu 19.04. llvm downloaded from github on 6/18 using instructions 
>> from the page you note.
>> cmake -G Ninja 
>> -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;debuginfo-tests;libclc;libcxx;libcxxabi;libunwind;lld;lldb;llvm;openmp;parallel-libs;polly;pstl" 
>> -DLLVM_USE_LINKER=lld -DCMAKE_BUILD_TYPE="Release" ../llvm
>> Installed additional packages as needed.
>> Neil
>> On 7/5/19 6:46 AM, Joan Lluch via llvm-dev wrote:
>>> Hi All,
>>>
>>> I am looking for the best way to install LLVM+clang,  but I do not 
>>> seem to find a way that works for me.
>>>
>>> I followed the steps in this document Getting Started with the LLVM 
>>> System — LLVM 9 documentation 
>>> <https://llvm.org/docs/GettingStarted.html> except that I created 
>>> the following folder structure as I do not want clang and llc to go 
>>> to /usr/local
>>>
>>> LLVM-9
>>>    llvm-project  (cloned from github)
>>>    install
>>>
>>> I ran the following command line from the build directory in 
>>> llvm-project as described in the doc, but added the 
>>> DLLVM_OPTIMIZED_TABLEGEN=On variable :
>>>
>>> cmake -G Xcode -DLLVM_ENABLE_PROJECTS=clang 
>>> -DCMAKE_INSTALL_PREFIX=/Users/joan/LLVM-9/install 
>>> -DLLVM_OPTIMIZED_TABLEGEN=On ../llvm
>>>
>>> The cmake command above seems to work ok, but after that, when I 
>>> compile the “install” or “build_all” schemes I get a lot of linker 
>>> errors. Such as these ones and more:
>>>
>>> clang: error: no such file or directory: 
>>> '/Users/joan/LLVM-9/llvm-project/build/Debug/lib/libclangAST.a'
>>> clang: error: no such file or directory: 
>>> '/Users/joan/LLVM-9/llvm-project/build/Debug/lib/libclangLex.a'
>>> clang: error: no such file or directory: 
>>> '/Users/joan/LLVM-9/llvm-project/build/Debug/lib/libclangBasic.a'
>>>
>>> Up until recently, I have worked with LLVM 7.0 and all what I did 
>>> was downloading both llvm and clang from llvm.org <http://llvm.org>, 
>>> copied clang into llvm/tools, and ran the cmake application (not 
>>> command line).  That kind of worked except for some minor glitches 
>>> but of course I didn’t get the benefits of git.
>>>
>>> So what am I doing wrong now? Why I’m getting such linker errors?
>>>
>>> It seems that a few required libraries are not created, but I do not 
>>> understand why. Any ideas?
>>>
>>> Thanks,
>>>
>>> John
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190706/a7d60c5f/attachment.html>


More information about the llvm-dev mailing list