QGroundControl for Linux

Ground Stations and utilities for Windows, Linux, Android, & others

Re: QGroundControl for Linux

Postby DUKE40 » Tue Apr 15, 2014 3:00 am

Hi Max,

I don't think ignoring the errors is the right solution, as the command sh ./get-festival.sh ends with the following erros:
testinstall.sh: 41: testinstall.sh: ../bin/festival: not found
make[1]: *** [testinstall] Fehler 1
make: *** [test] Fehler 2
./get-festival.sh: 33: ./get-festival.sh: bin/festival: not found

meaning the application festival could not be build. I am not sure if it is needed by QGroundControl, but I assume that it is needed, otherwise there would be no need to have it build according to the documentation.
And Building QGroundControl anyway ends with an error an no application:
/usr/include/osg/Math: In function 'bool osg::isNaN(float)':
../qgroundcontrol/src/QGC.h:55:18: error: 'std::std' has not been declared
#define isnan(x) std::isnan(x)
^
/usr/include/osg/Math: In function 'bool osg::isNaN(double)':
../qgroundcontrol/src/QGC.h:55:18: error: 'std::std' has not been declared
#define isnan(x) std::isnan(x)

make: *** [build-release/obj/MainWindow.o] Error 1
03:33:00: The Process "/usr/bin/make" was ended with the return value 2.
Error while creating/deploying the project qgroundcontrol(Kit: Desktop)
While processing step 'Make'

So, yes I tried that as well and failed as well. The error seems not to be related, but the result still is not what is expected.

I tried apt-get install festival-dev as well, but it did not solve the issue.
Best regards,
Image
Spacewalk 550, MT2216-11, SimonK 20A ESC, AQ6 DIMU, 10x5" CF, SJ4000
CamCruiser, MN3510, ESC32, AQ6 DIMU, 12x4" CF, SimpleBGC, GoPro Hero 3 BE
DUKE40
 
Posts: 364
Joined: Tue Mar 26, 2013 9:49 pm

Re: QGroundControl for Linux

Postby sandmen » Tue Apr 15, 2014 6:16 am

There are some patch arround for this issue. I didn't remember where I found that patch for festival.
Ignoring didn't work.
sandmen
 
Posts: 997
Joined: Fri Jun 22, 2012 7:25 am

Re: QGroundControl for Linux

Postby DUKE40 » Tue Apr 15, 2014 5:19 pm

That is good to know, that it is not an isolated issue, but Google was not able to redirect me to the mentioned patches, or at least I was not able to find them.
Further Qt Creator fails to compile with the error:
/usr/include/osg/Math: In function 'bool osg::isNaN(float)':
/usr/include/osg/Math:118:46: error: 'std::std' has not been declared
/usr/include/osg/Math: In function 'bool osg::isNaN(double)':
/usr/include/osg/Math:119:47: error: 'std::std' has not been declared

I have no idea what is wrong and how it could be corrrected. In this case as well I was not able to google the solution.
Best regards,
Image
Spacewalk 550, MT2216-11, SimonK 20A ESC, AQ6 DIMU, 10x5" CF, SJ4000
CamCruiser, MN3510, ESC32, AQ6 DIMU, 12x4" CF, SimpleBGC, GoPro Hero 3 BE
DUKE40
 
Posts: 364
Joined: Tue Mar 26, 2013 9:49 pm

Re: QGroundControl for Linux

Postby Max » Tue Apr 15, 2014 7:00 pm

"osg" is OpenSceneGraph. I have no idea why it can't find "std" lib. You don't really need OSG... to build w/out, go into qgroundcontrol.pri and comment out the relevant code block @ lines 207-219.

To build w/out speech, comment out the QtSpeech include in qgroundcontrol.pro line 96. Then open up src/GAudioOutput.cc and .h, and comment out every occurrence of "QtSpeech" (2 in .h) and the variable "speech" (3 in .cc). That should work, though it's possible I forgot some part. (And yes, there really should be a #define macro to exclude speech, but I haven't gotten around to it.)

-Max
Max
 
Posts: 2814
Joined: Mon Aug 13, 2012 9:45 pm
Location: Near Ithaca, NY, USA

Re: QGroundControl for Linux

Postby DUKE40 » Tue Apr 15, 2014 8:33 pm

Thanks Max, that worked, I have now again a running QGroundControl on my linux box.
Best regards,
Image
Spacewalk 550, MT2216-11, SimonK 20A ESC, AQ6 DIMU, 10x5" CF, SJ4000
CamCruiser, MN3510, ESC32, AQ6 DIMU, 12x4" CF, SimpleBGC, GoPro Hero 3 BE
DUKE40
 
Posts: 364
Joined: Tue Mar 26, 2013 9:49 pm

Re: QGroundControl for Linux

Postby johannes3154 » Sun Jun 15, 2014 4:58 pm

Hello Autoquad Community:-),
i got it compiled under Ubuntu 14.04 by installing the Packages festival; festival-dev speech-tools libsdl-console libsdl-console-dev libsdl1.2-dbg libsdl1.2-dev.
I only got the errors solved by copying the files of those packages from /usr/include/speech-tools and /usr/include/festival to the project directory of the qgroundcontrol application.
johannes3154
 
Posts: 56
Joined: Sat Jun 14, 2014 7:33 pm

Re: QGroundControl for Linux

Postby Max » Sun Jun 15, 2014 5:40 pm

Hello Johannes, and welcome.

Good to know, thanks. Building with festival seems to need a different "trick" for everyone. I should probably point a link in the readme to this thread.

Did you build the latest master version, or a branch? master is a bit experimental at the moment, but we'd appreciate testing the new serial library and functions. The 1.4 branch is the last released stable version.

BTW, I did add a macro for building w/out speech altogether (instructions in readme).

Cheers,
-Max
Max
 
Posts: 2814
Joined: Mon Aug 13, 2012 9:45 pm
Location: Near Ithaca, NY, USA

Re: QGroundControl for Linux

Postby johannes3154 » Sun Jun 15, 2014 9:38 pm

Hello Max,
i built both, the Master Branch and Branch 1.4. Both versions had the same issues with festival.
To have a successful build in Ubuntu you have to install qt version 4.8.6 and qt creator.
In qt creator go to tools --> options --> build & run --> [qt versions] to check the version of qt used by qt designer.
Install the required packages by typing
"sudo apt-get install festival festival-dev speech-tools libsdl-console libsdl-console-dev libsdl1.2-dbg libsdl1.2-dev"
Download the latest stable source from github and open the project file in qt-creator.
Now you have to tell qt designer where the include files of festival and speech-tools are, by changing the following line of code in the file "qgroundcontrol.pro"
Line 77-81
#################################################################
# EXTERNAL LIBRARY CONFIGURATION

# EIGEN matrix library (header-only)
INCLUDEPATH += libs/eigen

to

#################################################################
# EXTERNAL LIBRARY CONFIGURATION

# EIGEN matrix library (header-only)
INCLUDEPATH += libs/eigen \
/usr/include/festival \
/usr/include/speech_tools

Cheers Johannes:-)
johannes3154
 
Posts: 56
Joined: Sat Jun 14, 2014 7:33 pm

Re: QGroundControl for Linux

Postby Max » Sun Jun 15, 2014 10:32 pm

Hi Johannes,

Thanks for the tips. I agree, specifying the path to the shared festival and speech_tools is a better way to go than the current setup (using "private" versions the get-festival.sh script would download). I think your changes will be better placed in /libs/QtSpeech/QtSpeech.pri, in the Linux-specific section.

Cheers,
-Max
Max
 
Posts: 2814
Joined: Mon Aug 13, 2012 9:45 pm
Location: Near Ithaca, NY, USA

Re: QGroundControl for Linux

Postby johannes3154 » Mon Jun 16, 2014 8:14 pm

Hi Max,
i added the following lines to my /libs/QtSpeech/QtSpeech.pri:
48-49
INCLUDEPATH += /usr/include/speech_tools
INCLUDEPATH += /usr/include/festival
56-57
LIBS += -L/usr/lib -lFestival
LIBS += -L/usr/lib/speech_tools/lib -lestools -lestbase -leststring

This works for me;-).

The whole file looks like this now:

# QtSpeech -- a small cross-platform library to use TTS
# Copyright (C) 2010-2011 LynxLine.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General
# Public License along with this library; if not, write to the
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301 USA
# INCLUDEPATH += "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include"

DEPENDPATH += $$PWD
INCLUDEPATH += $$PWD

HEADERS += \
QtSpeech \
QtSpeech.h \

macx {
SOURCES += QtSpeech_mac.cpp
LIBS *= -framework AppKit
}

win32 {
SOURCES += QtSpeech_win.cpp

INCLUDEPATH += "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/atlmfc"
INCLUDEPATH += "C:/Program Files (x86)/Microsoft Speech SDK 5.1/Include"

LIBS += -L"C:/Program Files (x86)/Microsoft Speech SDK 5.1/Lib/i386"
}

unix:!mac {
HEADERS += QtSpeech_unx.h
SOURCES += QtSpeech_unx.cpp

INCLUDEPATH += $$PWD/festival/speech_tools/include
INCLUDEPATH += $$PWD/festival/festival/src/include

INCLUDEPATH += /usr/include/speech_tools
INCLUDEPATH += /usr/include/festival


LIBS += -lncurses

LIBS += -L$$PWD/festival/festival/src/lib -lFestival
LIBS += -L$$PWD/festival/speech_tools/lib -lestools -lestbase -leststring

LIBS += -L/usr/lib -lFestival
LIBS += -L/usr/lib/speech_tools/lib -lestools -lestbase -leststring


# Linux: use asound
LIBS += -lasound

# Mac: use system Frameworks
#LIBS += -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework Carbon
}

I don't know if there are prettier ways for adding include and library paths.;-)
Cheers Johannes
johannes3154
 
Posts: 56
Joined: Sat Jun 14, 2014 7:33 pm

Previous

Return to AQ Software

Who is online

Users browsing this forum: No registered users and 1 guest

cron