clang_parseTransitionUnit2 gives error
Sven Brauch
mail at svenbrauch.de
Sun Apr 17 10:59:49 BST 2022
Hi,
sorry, I don't see anything going wrong here -- I anticipated maybe it
would load 2 different versions of libclang but that doesn't seem to be
the case :(
Greetings!
On 4/17/22 09:34, Enes Albay wrote:
>
>
>
> Sorry for the late reply. I tried LIBGL_ALWAYS_INDIRECT=1 ./helloworld
> from stackoverflow.
>
>
> I attached LD_DEBUG=libs output with Qt and without Qt to this email.
>
>
>
>
>
> On Fri, Apr 15, 2022 at 2:02 AM Sven Brauch <mail at svenbrauch.de
> <mailto:mail at svenbrauch.de>> wrote:
>
> Hi,
>
> which solution did you try? The actual answer (not the comments) sounds
> plausible, we have heard of similar issues before, but that might
> not be
> easy to do on your system.
>
> Maybe you can get further info with LD_DEBUG=libs set and checking if
> indeed two different versions of libclang are loaded along the road?
>
> Greetings,
> Sven
>
>
> On 4/14/22 23:26, Enes Albay wrote:
> >
> > I guess I found the reason for the error. Clang works if I
> comment out
> > the line "QApplication app(argc, argv);" Otherwise It gives error
> like this:
> >
> > $ ./helloworld
> > 4
> > Unable to parse translation unit. Quitting.
> >
> > As far as I understand this bug is related to this one
> >
> https://stackoverflow.com/questions/17953156/cannot-use-libclang-with-qt
> <https://stackoverflow.com/questions/17953156/cannot-use-libclang-with-qt>
>
> >
> <https://stackoverflow.com/questions/17953156/cannot-use-libclang-with-qt
> <https://stackoverflow.com/questions/17953156/cannot-use-libclang-with-qt>>
> >
> > But the solution suggested in stackoverflow does not work for me.
> Do you
> > have any idea ?
> >
> > /******************MAIN **************************/
> > #include <QApplication>
> > #include "clang-c/Index.h"
> >
> > #include <iostream>
> > using namespace std;
> >
> > int main (int argc, char *argv[])
> > {
> > QApplication app(argc, argv);
> > CXIndex index = clang_createIndex(0, 0);
> > CXTranslationUnit unit = nullptr;
> >
> > CXErrorCode code = clang_parseTranslationUnit2(
> > index,
> >
> "/media/enes/MyFiles/programming/cpp/cmakeExamples/ex1/main.cpp",
> > nullptr, 0,
> > nullptr, 0,
> > CXTranslationUnit_None, &unit);
> >
> > cerr << code << endl;
> > if (code != CXError_Success) {
> > cerr << "Unable to parse translation unit. Quitting." << endl;
> > exit(-1);
> > }
> >
> > return 0;
> > }
> >
> >
> > # CMakeLists.txt
> >
> > cmake_minimum_required(VERSION 3.0)
> >
> > project (helloworld)
> >
> > set(LLVM_ROOT /usr/lib/llvm-13)
> > set(QT_MIN_VERSION "5.15.2")
> >
> > # Find Qt modules
> > find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
> > Core # QCommandLineParser, QStringLiteral
> > Widgets # QApplication
> > )
> >
> > find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config HINTS
> > ${LLVM_ROOT}/bin DOC "llvm-config executable" NO_DEFAULT_PATH)
> > message(${LLVM_CONFIG_EXECUTABLE})
> > set(Clang_DIR /usr/lib/llvm-13/cmake)
> >
> > # Find CMake file for Clang
> > find_package(Clang REQUIRED)
> >
> > execute_process(
> > COMMAND ${LLVM_CONFIG_EXECUTABLE} --includedir
> > OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
> > OUTPUT_STRIP_TRAILING_WHITESPACE
> > )
> >
> > message(${LLVM_INCLUDE_DIRS})
> >
> > execute_process(
> > COMMAND ${LLVM_CONFIG_EXECUTABLE} --libdir
> > OUTPUT_VARIABLE LLVM_LIBRARY_DIRS
> > OUTPUT_STRIP_TRAILING_WHITESPACE
> > )
> >
> > include_directories(${LLVM_INCLUDE_DIRS})
> >
> > set(helloworld_SRCS main.cpp)
> > add_executable(helloworld ${helloworld_SRCS})
> > target_link_libraries(helloworld
> > Qt5::Widgets
> > /usr/lib/llvm-13/lib/libclang.so
> > /usr/lib/llvm-13/lib/libclang-cpp.so.13
> > )
> > ~
> >
> >
> >
> > On Tue, Apr 12, 2022 at 6:37 PM Milian Wolff <mail at milianw.de
> <mailto:mail at milianw.de>
> > <mailto:mail at milianw.de <mailto:mail at milianw.de>>> wrote:
> >
> > On Tuesday, April 12, 2022 5:33:38 PM CEST Enes Albay wrote:
> > > I found something. After removing clang and llvm from my
> system I
> > get the
> > > following error which is the same as before removing clang.
> > >
> > > I think the actual problem is clang_parseTranslationUnit2
> can not
> > call
> > > clang even before removing clang
> > >
> > > Is there a way to verify such a situation?
> >
> > We use libclang directly, not clang. Try to ldd on the
> > kdevclangsupport or use
> > gdb and `info shared` to see where it loads that from. You didn't
> > remove all
> > of that yet apparently.
> >
> > --
> > Milian Wolff
> > http://milianw.de <http://milianw.de> <http://milianw.de
> <http://milianw.de>>
> >
> >
> >
> >
> > --
> > Enes Albay
>
>
>
> --
> Enes Albay
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xA4AAD0019BE03F15.asc
Type: application/pgp-keys
Size: 3147 bytes
Desc: OpenPGP public key
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20220417/8dbdb723/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20220417/8dbdb723/attachment.sig>
More information about the KDevelop-devel
mailing list