[Qt-creator] Code completion doesn't work with ClangCodeModel

Bernhard Seßler bernhard.sessler at corscience.de
Tue Jan 14 10:16:02 CET 2014


Hi,

your own project needs to be build with either -fPIC or -fPIE (as it's using the
pre-built Qt 5.2.0 libraries which have PIC enabled by default)

Regards,
Bernhard


On 14.01.2014 10:06, Yang Fan wrote:
> Hi,
> 
> One more question, which target should be built with the option -fPIE or
> -fPIC? The libclang so? The ClangCodeModel plugin? The QtCreator IDE? Or my
> own project edited by QtCreator?
> 
> 
> On Tue, Jan 14, 2014 at 4:47 PM, Bernhard Seßler <
> bernhard.sessler at corscience.de> wrote:
> 
>> Hi,
>>
>> as far as I can see, you've got another problem: the binaries from
>> qt-project.org were configured with the -reduce-relocations switch (and
>> thus
>> build with the -fPIC compiler switch), which means that your executable /
>> library also must be compiled with position independent code activated
>> (see:
>> http://en.wikipedia.org/wiki/Position-independent_code).
>>
>> All in all it's just adding the -fPIE (when building an executable) or
>> -fPIC
>> command line switch (when building a library) to the compiler arguments
>> (in case
>> you're using gcc).
>>
>> E.g. using CMake as build system (>= 2.8.9), it's as simple as:
>>
>> set(CMAKE_POSITION_INDEPENDENT_CODE ON)
>>
>> to enable generating position independent code for all top level targets,
>> or
>>
>> set_target_properties(<target> PROPERTIES POSITION_INDEPENDENT_CODE ON)
>>
>> to enable it only for the given <target>.
>>
>>
>> Regards,
>> Bernhard
>>
>> On 14.01.2014 01:56, Yang Fan wrote:
>> > Hi,
>> >
>> > I have dumpped the error messages, seemly it's caused by the Qt 5.2
>> > binaries. I'm using the binaries downloaded from
>> > http://qt-project.org/downloads.
>> >
>> > *** Reparse for highlighting took 481 ms.
>> > "error" "/home/tvu/Qt5.2.0/5.2.0/gcc_64/include/QtCore/qglobal.h"
>> > [996:4(33790)] ""You must build your code with position independent code
>> if
>> > Qt was built with -reduce-relocations. "         "Compile your code with
>> > -fPIC or -fPIE."
>> >   in file included from /home/tvu/Shareware/istkani/src/main.cpp:1:
>> >   in file included from /home/tvu/Shareware/istkani/src/main.cpp:1:
>> >   in file included from
>> > /home/tvu/Qt5.2.0/5.2.0/gcc_64/include/QtWidgets/QApplication:1:
>> >   in file included from
>> > /home/tvu/Qt5.2.0/5.2.0/gcc_64/include/QtWidgets/qapplication.h:45:
>> >   in file included from
>> > /home/tvu/Qt5.2.0/5.2.0/gcc_64/include/QtCore/qcoreapplication.h:45:"
>> > "error" "/opt/intel/composer_xe_2013.0.079/compiler/include/math.h"
>> > [27:3(742)] ""This Intel <math.h> is for use with only the Intel
>> compilers!"
>> >   in file included from /home/tvu/Shareware/istkani/src/main.cpp:1:
>> >   in file included from /home/tvu/Shareware/istkani/src/main.cpp:4:
>> >   in file included from
>> > /home/tvu/Qt5.2.0/5.2.0/gcc_64/include/QtQml/QtQml:3:
>> >   in file included from
>> > /home/tvu/Qt5.2.0/5.2.0/gcc_64/include/QtQml/QtQmlDepends:2:
>> >   in file included from
>> > /home/tvu/Qt5.2.0/5.2.0/gcc_64/include/QtCore/QtCore:65:
>> >   in file included from
>> > /home/tvu/Qt5.2.0/5.2.0/gcc_64/include/QtCore/qmath.h:49:"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [46:5(1373)] "no
>> member
>> > named 'QDir' in 'QFont'"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [57:10(1716)] "use of
>> > undeclared identifier 'dir'; did you mean 'div'?
>> >   'div' declared here"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [57:10(1716)] "member
>> > reference base type 'div_t (int, int) throw()' is not a structure or
>> union"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [57:14(1720)] "member
>> > reference base type 'div_t (int, int) throw()' is not a structure or
>> union"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [59:9(1792)] "use of
>> > undeclared identifier 'dir'; did you mean 'div'?
>> >   'div' declared here"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [59:9(1792)] "member
>> > reference base type 'div_t (int, int) throw()' is not a structure or
>> union"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [59:13(1796)] "member
>> > reference base type 'div_t (int, int) throw()' is not a structure or
>> union"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [60:9(1812)] "use of
>> > undeclared identifier 'dir'; did you mean 'div'?
>> >   'div' declared here"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [60:9(1812)] "member
>> > reference base type 'div_t (int, int) throw()' is not a structure or
>> union"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [60:13(1816)] "member
>> > reference base type 'div_t (int, int) throw()' is not a structure or
>> union"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [61:28(1872)] "use of
>> > undeclared identifier 'dir'; did you mean 'div'?
>> >   'div' declared here"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [61:28(1872)] "member
>> > reference base type 'div_t (int, int) throw()' is not a structure or
>> union"
>> > "error" "/home/tvu/Shareware/istkani/src/main.cpp" [61:32(1876)] "member
>> > reference base type 'div_t (int, int) throw()' is not a structure or
>> union"
>> > *** Highlighting took 491 ms in total.
>> > *** Fast re-indexing took 0 ms in total.
>> > /home/tvu/Qt5.2.0/5.2.0/gcc_64/include/QtCore/qglobal.h:996:4: error:
>> "You
>> > must build your code with position independent code if Qt was built with
>> > -reduce-relocations. "         "Compile your code with -fPIC or -fPIE."
>> > /opt/intel/composer_xe_2013.0.079/compiler/include/math.h:27:3: error:
>> > "This Intel <math.h> is for use with only the Intel compilers!"
>> > /home/tvu/Shareware/istkani/src/main.cpp:48:5: error: no member named
>> > 'QDir' in 'QFont'
>> > /home/tvu/Shareware/istkani/src/main.cpp:57:10: error: use of undeclared
>> > identifier 'dir'
>> > /home/tvu/Shareware/istkani/src/main.cpp:59:9: error: use of undeclared
>> > identifier 'dir'
>> > /home/tvu/Shareware/istkani/src/main.cpp:60:9: error: use of undeclared
>> > identifier 'dir'
>> > /home/tvu/Shareware/istkani/src/main.cpp:61:28: error: use of undeclared
>> > identifier 'dir'
>> > ... Completion done in 3313 ms, with 146 items.
>> >
>> >
>> >
>> > On Mon, Jan 13, 2014 at 6:07 PM, Erik Verbruggen
>> > <erik.verbruggen at digia.com>wrote:
>> >
>> >> On 11-1-2014 3:07, Yang Fan wrote:
>> >> > Hi,
>> >> >
>> >> > I have built the ClangCodeModel plugin successfully with Qt5.2 on Mac
>> OS
>> >> > X 10.9 and on Debian Wheezy, but after I enabled the plugin and
>> selected
>> >> > the Code Model in Preference dialog, the code completion feature
>> doesn't
>> >> > work. When I typed a dot follows an object name, no candidate list
>> >> > appears. Any suggestion?
>> >>
>> >> Can you run with the environment variable QTC_CLANG_VERBOSE set (value
>> >> doesn't matter), and check stdout? That should show the libclang
>> >> invocations plus any errors while parsing.
>> >>
>> >> -- Erik.
>> >>
>> >> _______________________________________________
>> >> Qt-creator mailing list
>> >> Qt-creator at qt-project.org
>> >> http://lists.qt-project.org/mailman/listinfo/qt-creator
>> >>
>> >
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > Qt-creator mailing list
>> > Qt-creator at qt-project.org
>> > http://lists.qt-project.org/mailman/listinfo/qt-creator
>> >
>> _______________________________________________
>> Qt-creator mailing list
>> Qt-creator at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/qt-creator
>>
> 
> 
> 



More information about the Qt-creator mailing list