QtCreator plugin for cppcheck, krazy and other tools
-
wrote on 11 Apr 2013, 18:29 last edited by
YES, it is, try to remove this line.
-
wrote on 12 Apr 2013, 12:33 last edited by
by removing that line, I have the following error
qcommandline.cpp:32:
error: C2491: 'QCommandLine::helpEntry' : definition of dllimport static data member not allowed -
wrote on 12 Apr 2013, 19:05 last edited by
I am using this module QCommandLine, it is also open source and I got it from http://xf.iksaif.net/dev/qcommandline.html.
I am sorry, I am not able to help at this point unless I try to compile on Windows, I do not have any Windows compiler.
I think that is in the link process and you are close to compile it.
Once you get it compiled, qmake and qtcreator must be in the PATH in order to work.
Try to research about this problem or contact the QCommandLine author.
-
wrote on 3 Jun 2013, 11:21 last edited by
I would recommend it, but given the hassle to set things up I'd give 4/5 stars. In addition to the manual, using windows there are couple of things to bear in mind:
- in the arguments field during setting up, be aware that unless you set cppcheck in your environment paths, "--tool=cppcheck" does not work. You'll need to set the directory:
@--qtc-plugin --tool="C:/Cppcheck-1.55/cppcheck.exe" %{CurrentProject:FilePath} @
-
You'll need to set an environment paths to QtCreator(usually in C:\Qt\Qt5.0.2\Tools\QtCreator\bin). Without this the warning messages from cppcheck does not show up in the issues pane
-
Don't use cppcheck 1.60. In qpt 0.7, it doesn't work. I got things running with cppcheck 1.55.
And thus, a happy user of QtProjectTool! :D
!https://lh6.googleusercontent.com/-byu0-9Dqaro/UayAScAJ3gI/AAAAAAAABWc/nw5Ld_YStvw/w617-h585-no/QtProjectTool+Screenshot.png(QtProjectTool running in windows 7)!
windows 7 32bit, Qt 5.0.2 MinGW, cppcheck 1.55
-
wrote on 3 Jun 2013, 20:17 last edited by
OK, Thanks.
I got a Windows machine and I am able to work on that now.
qpt 0.8 version will work better on Windows and the manual will be updated.
-
wrote on 18 Jun 2013, 14:02 last edited by
Not a very good method for tool version check:
you are getting the numeric part and blindly converting to double. Well, it's a bit optimistic assumption that a version number will be a valid numeric value!In fact, now that cppcheck went up to version 1.60.1, QPT happily states that "Tool cppcheck-gui requires a minimal version 1.55".
-
wrote on 18 Jun 2013, 14:23 last edited by
It is a bug and will be fixed soon.
As a work around try to edit the configuration file, qpt prints the path of the configuration file when it starts.
It is usually located at $HOME/.config/QtProjectTool/qpt.initry to clear the minimal version line, change:
Mininal_version_USE_only_digist_and_dot_it_will_be_converted_to_float=1.58
to
Mininal_version_USE_only_digist_and_dot_it_will_be_converted_to_float=
That should work.
-
wrote on 18 Jun 2013, 14:44 last edited by
I did it the other way :)
Created a QByteArray w2 where to copy all the numbers without any punctuation sign. So 1.60.1 ends up being 1601 which is greater than 1.55
Maybe it's a good idea for version checking (I didn't stop to think about implications of doing this... it was just a workaround) -
wrote on 20 Jul 2013, 17:37 last edited by
Hello,
Version 0.8 has been released with some improvements, see "RELEASE NOTES":http://sourceforge.net/projects/qtprojecttool/files/RELEASE_NOTES.txt/download
-
wrote on 20 Jul 2013, 17:46 last edited by
Version 0.8 has been released with some improvements, the main work was done to have a better Windows version.
See "RELEASE NOTES":http://sourceforge.net/projects/qtprojecttool/files/RELEASE_NOTES.txt/download
-
wrote on 21 Aug 2013, 09:06 last edited by
Thank you for your tool! But I get question marks in the file paths with non-latin letters (e.g. cyrillic letters)
@$qpt -A CET.pro/home/alex/Projects/??????/src/main.cpp
/home/alex/Projects/??????/src/mainwindow.cpp
/home/alex/Projects/??????/src/mainwindow.h@ -
wrote on 21 Aug 2013, 15:46 last edited by
Hi,
Are you using version 0.8 ?
send me your project file and the right path it should bring,
I will take a look on that.
Thanks, Carlos
-
wrote on 22 Aug 2013, 13:04 last edited by
Yes, the version is 0.8. I sent you a tarball, thanks for your fast respond
-
wrote on 22 Aug 2013, 23:26 last edited by
Hi, it has been fixed (not published yet)
bq. ./qpt -A /home/carlos/tmp/projects/qpt_tests/Проекты/КириллическоеИмяПроекта/hello.pro
/home/carlos/tmp/projects/qpt_tests/Проекты/КириллическоеИмяПроекта/hello.cppBut, I am afraid cppcheck does not handle unicode paths:
/usr/bin/cppcheck --platform=unix32 -I . -f -q --template '{file}:{line}:{id}:{message}' --inline-suppr --enable=style --enable=unusedFunction --suppress=missingInclude:* --inconclusive --file-list=/tmp/qt_temp.Lh2660
cppcheck: error: could not find or open any of the paths given.
I use full pathname for files, I will try using relative pathnames.
-
wrote on 23 Aug 2013, 06:51 last edited by
[quote author="cmazieri" date="1377213999"]
But, I am afraid cppcheck does not handle unicode paths:/usr/bin/cppcheck --platform=unix32 -I . -f -q --template '{file}:{line}:{id}:{message}' --inline-suppr --enable=style --enable=unusedFunction --suppress=missingInclude:* --inconclusive --file-list=/tmp/qt_temp.Lh2660
cppcheck: error: could not find or open any of the paths given.
I use full pathname for files, I will try using relative pathnames.
[/quote]No, cppcheck is all right. This is what I get with cppcheck 1.60.1
@$ cat list
/home/alex/Проекты/КириллическоеИмяПроекта/hello.cpp$ /usr/bin/cppcheck --platform=unix32 -I . -f -q --template ‘{file}:{line}:{id}:{message}’ --inline-suppr --enable=style --enable=unusedFunction --suppress=missingInclude:* --inconclusive /home/alex/Проекты/КириллическоеИмяПроекта/hello.cpp --file-list=list
‘/home/alex/Проекты/КириллическоеИмяПроекта/hello.cpp:9:unreadVariable:Variable 'a' is assigned a value that is never used.’
‘/home/alex/Проекты/КириллическоеИмяПроекта/hello.cpp:9:arrayIndexOutOfBounds:Array 'a[5]' accessed at index 5, which is out of bounds.’@ -
wrote on 24 Aug 2013, 15:55 last edited by
Hi,
Many Thanks,
I had no Unicode handling in qpt, it has been included.
Please get version "0.9":http://sourceforge.net/projects/qtprojecttool/files/0.9/qpt-source-0.9.tgz/download and let me know if you have any problem.
Regards,
bq.
[qpt running]: /usr/bin/cppcheck --platform=unix32 -I . -f -q --template '{file}:{line}:{message}' --inline-suppr --enable=style --enable=unusedFunction --inconclusive /home/carlos/tmp/projects/tests/test/Проекты/КириллическоеИмяПроекта/hello.cpp /home/carlos/tmp/projects/tests/test/Проекты/КириллическоеИмяПроекта/mz.cpp /home/carlos/tmp/projects/tests/test/Проекты/КириллическоеИмяПроекта/ры.cpp'/home/carlos/tmp/projects/tests/test/Проекты/КириллическоеИмяПроекта/hello.cpp:5:Variable 'x' is not assigned a value.'
'/home/carlos/tmp/projects/tests/test/Проекты/КириллическоеИмяПроекта/mz.cpp:3:Unused variable: ret'
'/home/carlos/tmp/projects/tests/test/Проекты/КириллическоеИмяПроекта/mz.cpp:4:Variable 'x' is not assigned a value.'
'/home/carlos/tmp/projects/tests/test/Проекты/КириллическоеИмяПроекта/ры.cpp:3:Unused variable: ret'
'/home/carlos/tmp/projects/tests/test/Проекты/КириллическоеИмяПроекта/ры.cpp:4:Variable 'x' is not assigned a value.'
'/home/carlos/tmp/projects/tests/test/Проекты/КириллическоеИмяПроекта/mz.cpp:1:The function 'x' is never used.' -
wrote on 27 Aug 2013, 10:54 last edited by
Hi,
this is a great tool. However, my top-level project file is of type "subdirs" and thus no sources are listed. Nevertheless it would be great to have this tool parsing recursively the .pro-file(s) below.
Can this be done?
Regards,
Thorsten
-
wrote on 27 Aug 2013, 18:43 last edited by
No,
qpt uses qmake to expose SOURCES and HEADERS.
A subdir project does not have it, at least I do not know.What I do is: create a dummy project file that includes all other projects, like this:
my_cppcheck_code.pro
@
BASE = snapshot_8_22_2013include ($$BASE/Ldap/test/regression_ldap.pro)
include ($$BASE/ProcessWindow/test/regression_jobwindow.pro)
include ($$BASE/commonLib/cmntrace/test/cmntrace.pro)
include ($$BASE/commonLib/cmncli/test/cmncli.pro)
include ($$BASE/ComboSearch/ComboSearch.def)
include ($$BASE/customHeader/test/customtable.pro)
include ($$BASE/DictPointer/DictPointer.def)
include ($$BASE/diskspace/test/diskspace.pro)
include ($$BASE/FileUtil/FileUtil.def)
include ($$BASE/Ldap/Ldap.def)
include ($$BASE/Preferences/test/regression_PreferencesEditor.pro)
include ($$BASE/Tickets/Tickets.def)
include ($$BASE/UiUtils/UiUtils.def)
include ($$BASE/tests/regression_pipa.pri)
@Then use that dummy project my_cppcheck_code.pro to run qpt/cppcheck. You can have all those projects opened in QtCreator, so set the dummy as default to run qpt, then set the original project back as default to compile.
By the way, I am having problems to make this change work on Windows, the path comes undefined from command qpt command line.
Regards,
Carlos -
wrote on 29 Aug 2013, 09:31 last edited by
Thanks a lot, cyrillic names work like a charm!
Is it possible to get support of subdirs projects? I've tried the method you suggested but with no result. I sent you a tarball with project I used, if you have time to take a look
-
wrote on 29 Aug 2013, 10:46 last edited by
You have to include $$PWD in SOURCES and HEADERS in your .pro files, like this:
@
SOURCES += $$PWD/main.cpp
$$PWD/mainwindow.cppHEADERS += $$PWD/mainwindow.h
FORMS += $$PWD/mainwindow.ui
@I used your subdirs-project-cppcheck.pro and I put an issue in main.cpp to test that:
@Starting external tool 'C:/Users/b35201/Downloads/build-qprojtool-Qt_4_85_static-Release/release/qpt.exe' -t cppcheck -q C:/Users/b35201/Downloads/subdirs-project/subdirs-project-cppcheck.pro
qpt.exe using: C:/Users/b35201/AppData/Roaming/QtProjectTool/qpt.exe.ini[qpt.exe running]: "C:/Program Files/Cppcheck/cppcheck.exe" --platform=win32W -I . -DUNICODE -DWIN32 -f -q --template '{file}:{line}:{message}' --inline-suppr --enable=all --inconclusive --file-list=C:/Users/b35201/AppData/Local/Temp/qt_temp.Uh7436
'C:\Users\b35201\Downloads\subdirs-project\tests\test1\main.cpp:5:Variable 'x' is not assigned a value.'
'::Cppcheck cannot find all the include files (use --check-config for details)'[qpt.exe INFO]: "C:/Program Files/Cppcheck/cppcheck.exe" finished with return code 0
[qpt.exe running]: C:/Qt/Qt5.0.2/Tools/QtCreator/bin/qtcreator.exe -client C:/Users/b35201/AppData/Local/Temp/qpt.exe0737323847436.tasks
[qpt.exe INFO]: finished with return code 0
'C:/Users/b35201/Downloads/build-qprojtool-Qt_4_85_static-Release/release/qpt.exe' finished@
I will add this procedure in the qpt manual.
Thanks,
Carlos