On Jun 17, 2014, at 7:02 AM, David Chisnall <David.Chisnall at
cl.cam.ac.uk> wrote:
> On 17 Jun 2014, at 05:57, Joerg Sonnenberger <joerg at
britannica.bec.de> wrote:
>
>> On Mon, Jun 16, 2014 at 05:20:55PM -0500, Joseph wrote:
>>> Undefined symbols for architecture x86_64:
>>> "_del_curterm", referenced from:
>>> terminalHasColors(int) in libLLVMSupport.a(Process.o)
>>
>> Need to link against libterminfo / libtinfo / libncurses, depending on
>> your platform. Alternatively, disable terminfo support via
cmake/configure.
>
> Recent versions of llvm-config provide a --system-libs option that will
provide this. I don't know why llvm-config provides a separate flag for
this, when every pkg-config distribution just puts these in ldflags, but adding
the output from this to your build system is the best thing to do.
>
> Unfortunately, old versions of llvm-config don't provide this and
produce an error message when you pass it, so you'll need to do a version
check in your build system for it too.
Thank you all for your input. I can finally compile the tutorial files. Heres
what I used for chapter three:
clang++ -g -O3 toy.cpp `llvm-config --cxxflags --ldflags --libs core
--system-libs` -o toy
Note as Joerg and David suggested, --system-libs is required to link against
appropriate libraries.
Also note that --cxxflags is used instead of --cppflags which is opposed to the
instructions located on the tutorial page:
http://llvm.org/docs/tutorial/LangImpl3.html#full-code-listing
So the question is: Are others required to use these options? If so then is it
possible that the documentation is incorrect/incomplete? If the problem is
unique to my system, then is it something I did wrong when building LLVM/Clang?
Joseph Morgan