<div dir="ltr">Okay, so that rules out one explanation. I don't have a MinGW build of LLVM to try right now; will have a go at getting one up and running over the weekend. I do have a Linux one to experiment with. Tentative conclusions so far:<div><br></div><div>llvm-config doesn't work once you need clang as well as LLVM; we're basically on our own as far as that goes - even the include file directories will need to be specified by hand, so we can resign themselves to doing the rest by hand as well.</div><div><br></div><div>The libTooling tutorial suggests building a custom version of cmake and then using a GUI program to configure the build on the current machine, which obviously isn't a winning strategy for distributable software.</div><div><br></div><div>As for actually trying to build clang-using stuff Linux, haven't yet got past the include stage. Here's where I am currently at:</div><div><br></div><div><div>a@a-VirtualBox:~$ gcc -I/llvm/include -I~/build/include -I~/llvm/tools/clang/include -I~/build/tools/clang/include ~/ayane/compiler/*.cpp</div><div>/home/a/ayane/compiler/main.cpp:9:47: fatal error: clang/Tooling/CommonOptionsParser.h: No such file or directory</div><div> #include <clang/Tooling/CommonOptionsParser.h></div><div> ^</div><div>compilation terminated.</div><div>a@a-VirtualBox:~$ find . -name CommonOptionsParser.h</div><div>./llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h</div></div><div><br></div><div>so as far as I can see, I'm specifying the necessary directory but it's still not working, but I'm not very familiar with Linux so I could just be overlooking the obvious - can you see what I'm missing?</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Apr 23, 2016 at 8:31 AM, barbara <span dir="ltr"><<a href="mailto:barbara@copperspice.com" target="_blank">barbara@copperspice.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Russell,<br>
<br>
We commented out code so the only lines we have right now are the
following:<br>
<br>
llvm::cl::OptionCategory category("");<br>
clang::tooling::CommonOptionsParser options(argc, argv, category);<br>
<br>
Due to other library dependencies in our application we can not
compile with MSVC. <br>
<br>
Barbara<br>
<br>
<br>
</div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">Okay so it's working for me but not for you, and
the two obvious possible candidates for reasons why are that
you're using MinGW or that your program does more than mine
currently does, and therefore requires more of the functionality
of libTooling. To distinguish between those, can you try
compiling your program in the way I've been compiling mine, with
Microsoft C++ driven by a Windows batch file, and see if that
makes any difference?</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri, Apr 22, 2016 at 8:05 PM,
barbara <span dir="ltr"><<a href="mailto:barbara@copperspice.com" target="_blank">barbara@copperspice.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Russell,<br>
<br>
Our initial testing right now is on Windows however we
are not using VS but rather MinGW. Our application will
need to support libTooling on multiple flavors of Linux
and OS X. <br>
<br>
What we have tested seems to imply there is an ordering
issue. I tried the following in our Makefile and there
are still unresolved symbols.<br>
<br>
clang_link=-L$(clang_path)/lib -llibclang
$(clang_path)/lib/*.a<br>
<br>
Any ideas or suggestions?<span><font color="#888888"><br>
<br>
Barbara<br>
<br>
<br>
</font></span></div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">I solved the problem of which
libraries by not solving it; on Windows, my
compile command looks like
<div><br>
</div>
<div>cl /I\llvm\build\include
/I\llvm\build\tools\clang\include
/I\llvm\include /I\llvm\tools\clang\include /MTd
/Zi compile.cpp \llvm\build\Debug\lib\*.lib
setargv.obj<br>
</div>
<div><br>
</div>
<div>I.e. just link all the libraries. Is there an
equivalent of that on Unix?</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri, Apr 22, 2016 at
5:15 AM, barbara via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank"></a><a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Manuel,<br>
<br>
Yes, we have looked at this page and it
does talk about building clang which we
have done successfully. We have figured
out the required headers by simply
compiling. Our issue is linking.<br>
<br>
Submitting a documentation patch would be
a great idea and we are happy to do this,
once we know how it works. <br>
<br>
Just to be clear, we are not putting our
code in the clang source tree. We are
integrating clang parsing as part of
another open source project. We need to
modify our build files to link with
libTooling.<br>
<br>
We have not been able to decipher which
libraries are required. The following is
part of a makefile we randomly found on
GitHub. Is it really this hard? Sadly
this Makefile did not work for us, we
still have link issues.<br>
<br>
<br>
LIB = -lclangFrontend -lclangDriver
-lclangTooling \
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">
-lclangDriver -lclangTooling
-lclangFrontendTool \</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangFrontend
-lclangDriver -lclangSerialization \</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangCodeGen
-lclangParse -lclangSema \</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangStaticAnalyzerFrontend
-lclangStaticAnalyzerCheckers \</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangStaticAnalyzerCore
-lclangAnalysis \</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangARCMigrate
-lclangRewriteFrontend \</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangRewriteCore
-lclangEdit -lclangAST \</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangLex
-lclangBasic -lclangCodeGen -lclangSema
\</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangAnalysis
-lclangAST -lclangParse -lclangLex \</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangASTMatchers
\</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> -lclangBasic
-lLLVMSupport</p>
<br>
<br>
<br>
Barbara<br>
<br>
<br>
<br>
<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote"><span>
<div dir="ltr">On Thu, Apr 21, 2016
at 9:31 AM barbara <<a href="mailto:barbara@copperspice.com" target="_blank"></a><a href="mailto:barbara@copperspice.com" target="_blank">barbara@copperspice.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Manuel,<br>
<br>
Yes, we have read all of the
links on clang.llvm for
LibTooling. Most simply
mention how to use the
existing tools. There is
simply nothing we can find
which shows which clang
libraries are required for
libTooling.<br>
<br>
The page you listed shows how
to run ClangCheck, not how to
link an third party
application with libTooling.
We are developing a new tool
and libTooling seems to be our
best shot. <br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>The page I linked shows how to
write the code. The libraries you
need follow from the headers /
classes you use.</div>
<div><br>
</div>
<div>This:</div>
<div><a href="http://clang.llvm.org/docs/LibASTMatchersTutorial.html" target="_blank">http://clang.llvm.org/docs/LibASTMatchersTutorial.html</a><br>
</div>
<div>should also be still mostly up
to date - if it isn't, patches are
welcome :D</div>
<div><br>
</div>
<div>Cheers,</div>
<div>/Manuel</div>
<div> </div>
</span>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div> <br>
<br>
Barbara<br>
<br>
<br>
<br>
</div>
</div>
<div bgcolor="#FFFFFF" text="#000000">
<blockquote type="cite"><span>
<div dir="ltr">I assume you
have found:
<div><a href="http://clang.llvm.org/docs/LibTooling.html" target="_blank"></a><a href="http://clang.llvm.org/docs/LibTooling.html" target="_blank">http://clang.llvm.org/docs/LibTooling.html</a><br>
</div>
<div>(which is the first hit
for me when searching for
"libtooling clang")</div>
</div>
<br>
</span>
<div class="gmail_quote"><span>
<div dir="ltr">On Wed, Apr
20, 2016 at 9:56 PM
barbara via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank"></a><a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>>
wrote:<br>
</div>
</span>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>
<div bgcolor="#FFFFFF" text="#000000"> <font face="Helvetica,
Arial, sans-serif">We
have found AST
limitations with
libClang and
understand few
developers are using
this approach for
parsing C++. We have
been advised to switch
to using libTooling,
which now makes
sense. <br>
<br>
We have found limited
documentation and are
working our why though
what it take to set up
a project which uses
libTooling. The only
tutorials we have
found are from several
years ago. If newer
ones exist it would be
great to know about
them. Searching for
"libTooling" yields
too many hits on
"libtool", which is
obviously not what we
are looking for. <br>
<br>
I believe we have
figured out the
appropriate include
files. Our current
obstacle is figuring
out what clang
libraries we need.
This seems to be order
dependent, but I could
be incorrect. We have
link errors and trying
to look up undefined
symbols in nearly
impossible.<br>
<br>
We look forward to
someone who can point
us in the right
direction as it seems
we are missing a few
basics. <br>
<br>
Thanks, <br>
<br>
Barbara<br>
Co-Founder of
DoxyPress<br>
</font><br>
</div>
</span><span>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</span></blockquote>
</div>
</blockquote>
</div>
<div bgcolor="#FFFFFF" text="#000000"><br>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank"></a><br>
<br>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
<br>
</div></div><table style="border-top:1px solid #aaabb6">
<tbody><tr>
<td style="width:55px;padding-top:13px"><a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient&utm_term=icon" target="_blank"><img src="https://ipmcdn.avast.com/images/2016/icons/icon-envelope-tick-round-orange-v1.png"></a></td>
<td style="width:470px;padding-top:15px;color:#41424e;font-size:13px;font-family:Arial,Helvetica,sans-serif;line-height:18px">Virus-free. <a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient&utm_term=link" style="color:#4453ea" target="_blank">www.avast.com</a>
</td>
</tr>
</tbody></table></div>
</blockquote></div><br></div>