Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
[SOLVED] Cannot find QtUiToolsE
I am build an application for my embedded target. In the application am using QtUiTools to simulate the events.
The error is:
/home/suseelk/ti-sdk-am335x-evm-07.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lQtUiToolsE
I have been trying different ways to solve this problem. And trying out in google as well. There are no success.
It looks like QtUiTools have not been built statically for the linkage.
Can anyone please help me out to understand it better and also to fix the problem?
Hello kumararajas, you provide a little bit to less information ;-)
first did you add the UITools module to the list of modules in your projects projectName.pro file?
CONFIG += uitools
if yes and it does not work which version Qt you are using? And do you have a configure statement to see how your Qt installation was build?
On my system it's a static library named libQt5UiTools.a . Depending from your Qt version it can be libQt4UiTools.a on your system.
Did you do an find / -name libQt5UiTools.a if the file is somewhere on your system?
Thanks for the response and sorry for the very little information. (I was in "tunnelling mode" ;))
Here are my answers.
Yes, I did add uitools in pro file as you mentioned.
Am using Qt 4.7.1.
About configure statement,
./configure -embedded -qvfb -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb -prefix /usr/local/Trolltech/Qt-embedded-qvfb-4.7.1
This is what I have used to configure Qt.
About libQtUiTools.a, yes, I do have this file in the path,
In the above path, I do have two files
And, am building the application for ARM platform. I have the cross compiler set in place.
Sorry for just answering just directly to the questions, instead of explaining the things. (I thought about explaining, but I dont know to what extend I need to explain)
Thanks for your help!
are you did a "Clean project" after adding the module to the .pro file?
Try to add the following to the the end of your .pro file
LIBS += -L/usr/local/Trolltech/Qt-embedded-qvfb-4.7.1/lib -Bstatic -lQtUiTools
This tells the linker to search in /usr/local/Trolltech/Qt-embedded-qvfb-4.7.1/lib for libraries and do a static link to QtUiTools library.
Dont't place blanks behind the -L, -l and -B options
It's me again
the linker complains about a missing QtUiToolsE library but the name of the library is libQtUiTools.a without an "E" at the end. Is there somewhere a type error in the config?
the QtUiTools library is not built when cross-compiling, it's part of the tools which are not cross-compiled.
You can try to do it by hand. The library is in qt/tools/designer/src/uitools/
This is called "excellent" support.
Thank you very much kuschky (i dont know your real name) and Sam!
Having both help, I have cross compiled "uitools" for the ARM target as Sam mentioned and linked the library by the way that Kuschky mentioned.
With this, My application running on target is able to simulate the events.
Thank you very much!!!