[Solved] ERROR QOpenGLWidget example - Undefined symbol
-
wrote on 5 Jan 2015, 23:22 last edited by
Thanks a lot for your help.
My target is a linux (ubuntu 14.04) arm based. I am using the arm-linux-gnueabihf cross compiler. -
Ok, as for the installation part, it's the last step after you called make
-
wrote on 6 Jan 2015, 22:57 last edited by
Sorry I do not understand...
Are you talking about adding a step inside QtCreator in the Build Steps after the "make" ?
Are you talking about the "make" after the ./configure ? So the "make install" step I presume ?I am not able to find information on this LD_LIBRARY_PATH. Where am I supposed to set this variable ? Inside my .pro ? And to what ? Where ? On my target ? Or on my host ?
Is it supposed to be set to /usr/local/qt-embedded-5.4.0/lib or something like that ?I am stuck on this error for several days. I tried so many things but none of them work... I will really appreciate your help.
Thank you,
Morgane
-
Yes, make install after make after configure
LD_LIBRARY_PATH is not Qt specific it's a Linux environment variable that you can set in Qt Creator, in your current terminal or in a bash script that will start your application.
Since you are using Qt Creator and IIRC, you have the option to do it for your target. It must contain the path to where your custom built Qt can be found on the target.
-
wrote on 7 Jan 2015, 01:01 last edited by
Ok I see.
So if I understand correctly, I do NOT need to re-compile my custom built Qt or anything like that but I need to specify LD_LIBRARY_PATH in my QtCreator.
But when you say "It must contain the path to where your custom built Qt can be found on the target."
Does it mean that I need to copy my custom build Qt on my target ? It's 1.7GB, it's a lot for an embedded device. I only have it on my host right now.I have a "qt5" folder inside my /usr/lib/arm-linux-gnueabihf on my target with inside three folders "libexec", "plugins" and "qml" but there is nothing about QOpenGL. libexec has QtWebPluginProcess and QtWebProcess. Is it the place where I should have my QOpenGL libraries ?
What am I missing ?
Thank you,
Morgane
-
Since you only have it on your host, how do you expect your device to use it to run your application ? What device is it ? Currently most of them use e.g. sdcards that are generally big enough even for development.
You don't need to copy absolutely everything, the plugins/libraries your application is using would be enough
-
wrote on 8 Jan 2015, 18:42 last edited by
I copied the libQt5OpenGL.so.5.4.0 and I created the link of libQt5OpenGL.so on my target. I set the LD_LIBRARY_PATH in the Build environnement on Qt Creator to the folder where I copied the libraries but it is still not working...
What am I doing wrong ? -
wrote on 8 Jan 2015, 19:08 last edited by
I don't understand why is it so difficult to get a QOpenGLWidget working. I search for it and the code is with the QtWidgets.
Why a QMessageBox will work perfectly and not a QOpenGLWidget ? What is the difference between them ? -
It's the Run environment that you must update, it's when you run your application that LD_LIBRARY_PATH is used.
QMessageBox only relies on the widget module that seems to be properly deployed
-
wrote on 8 Jan 2015, 21:34 last edited by
I tried it, setting the LD_LIBRARY_PATH inside the Run Environment but I am still getting the error....
-
wrote on 8 Jan 2015, 21:42 last edited by
I also tried directly on the board by setting the LD_LIBRARY_PATH inside my terminal, running my binary file but I am still getting exactly the same error. Does it mean that I do not copy the good libraries ? What are they exactly ?
-
Which library did you copy exactly ?
-
wrote on 14 Jan 2015, 17:52 last edited by
Hi,
Actually I solved the problems. I copied the libQt5Core.so.5, libQt5Gui.so.5, libQt5OpenGL.so.5 and libQt5Widgets.so.5 in the same directory of the binary file and I do not get the errors about the libraries.
Now I'm dealing with the plugins "xcb" or "eglfs".
First I do not know which one to use for an embedded device. I found somewhere that eglfs is the best. Is it right ?I'm getting a "Could not create the egl surface: error = 0×300b" when using eglfs...
Any idea ? Should I create a new topic for that ?
-
eglfs best ? Depends on your use case. If it's a single application then yes since you won't have the Xorg layer in between.
Yes you should open a new one. In between, are you running an X server when you try to use the eglfs plugin ?
-
wrote on 15 Jan 2015, 00:39 last edited by
I will use XCB as people are recommending this one for my device. I created a new thread for my XCB-related-errors as it is not related to this one anymore.
Thank you for your help!!
17/22