<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>