compilation on fedora 64-bit

Post in this forum any question related to the installation on any of the supported platforms (Linux, Mac OS X, Windows)
val
Posts: 5
Joined: Mon Jan 21, 2013 6:27 pm

compilation on fedora 64-bit

Postby val » Thu Jan 24, 2013 12:50 pm

Hi,

I've tried to install geopsy on a Fedora 17 64-bit system, however I can't compile nor the testing 2.5.0 version nor the current development package.

The Qt version is:

qmake -v
QMake version 2.01a
Using Qt version 4.8.4 in /usr/lib64

With the testing version I got the following error:

g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -O2 -Wall -W -D_REENTRANT -fPIC -DMAKE_QGPCORETOOLS_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_SHARED -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include -Isrc -Iui -I../include -Irelease -o release/Leds.o src/Leds.cpp
src/Leds.cpp: In member function ‘bool QGpCoreTools::Leds::test(int)’:
src/Leds.cpp:82:26: error: ‘read’ was not declared in this scope
src/Leds.cpp:83:15: error: ‘close’ was not declared in this scope
src/Leds.cpp:86:13: error: ‘close’ was not declared in this scope
src/Leds.cpp: In member function ‘void QGpCoreTools::Leds::setTrigger(int, const char*)’:
src/Leds.cpp:128:33: error: ‘write’ was not declared in this scope
src/Leds.cpp:129:13: error: ‘close’ was not declared in this scope
src/Leds.cpp: In member function ‘void QGpCoreTools::Leds::powerInternal(int, bool)’:
src/Leds.cpp:140:32: error: ‘write’ was not declared in this scope
src/Leds.cpp:141:13: error: ‘close’ was not declared in this scope
src/Leds.cpp: In member function ‘void QGpCoreTools::Leds::setDelayOn(int, int)’:
src/Leds.cpp:154:31: error: ‘write’ was not declared in this scope
src/Leds.cpp:155:13: error: ‘close’ was not declared in this scope
src/Leds.cpp: In member function ‘void QGpCoreTools::Leds::setDelayOff(int, int)’:
src/Leds.cpp:168:31: error: ‘write’ was not declared in this scope
src/Leds.cpp:169:13: error: ‘close’ was not declared in this scope
make[2]: *** [release/Leds.o] Error 1
make[2]: Leaving directory `/home/data/geopsy/src/geopsypack-57items-src-2.5.0/QGpCoreTools'
make[1]: *** [release] Error 2
make[1]: Leaving directory `/home/data/geopsy/src/geopsypack-57items-src-2.5.0/QGpCoreTools'
make: *** [sub-QGpCoreTools-make_default-ordered] Error 2

with the development version this one:

g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -O2 -Wall -W -fPIC -DMAKE_GPCORETOOLS_DLL -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -Isrc -Iui -I../include -o release/CoreApplication.o src/CoreApplication.cpp
src/CoreApplication.cpp: In static member function ‘static void GpCoreTools::CoreApplication::osSignal(int)’:
src/CoreApplication.cpp:137:16: error: ‘sleep’ was not declared in this scope
src/CoreApplication.cpp: In member function ‘void GpCoreTools::CoreApplication::terminalSize() const’:
src/CoreApplication.cpp:357:14: error: ‘STDOUT_FILENO’ was not declared in this scope
src/CoreApplication.cpp:358:14: error: ‘STDERR_FILENO’ was not declared in this scope
src/CoreApplication.cpp:359:14: error: ‘STDIN_FILENO’ was not declared in this scope
src/CoreApplication.cpp:363:7: error: ‘::close’ has not been declared
make[2]: *** [release/CoreApplication.o] Error 1
make[2]: Leaving directory `/home/data/geopsy/src/geopsypack-66items-src-0.0.0-snapshot-20130122/GpCoreTools'
make[1]: *** [release] Error 2
make[1]: Leaving directory `/home/data/geopsy/src/geopsypack-66items-src-0.0.0-snapshot-20130122/GpCoreTools'
make: *** [sub-GpCoreTools-make_default-ordered] Error 2

Does anybody know, where the problem is?

Thank you.

admin
Site Admin
Posts: 412
Joined: Mon Aug 13, 2007 11:48 am
Location: ISTerre
Contact:

Re: compilation on fedora 64-bit

Postby admin » Tue Jan 29, 2013 9:28 am

For the testing release, I remember to have fix this issue a week or two ago. This is ready for release 2.6.0 to be publish soon.

For the development tree, I've never encounter this error. Can you tell me which gcc release you are running?

Just a try.
Can you edit file GpCoreTools/src/CoreApplication.cpp?
Insert

Code: Select all

#  include <unistd.h>

at line 27 before:

Code: Select all

#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <signal.h>


If it does not work, you can run the following commands and post the results:

Code: Select all

cd GpCoreTools
g++ -dD -E -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -O2 -Wall -W -fPIC -DMAKE_GPCORETOOLS_DLL -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -Isrc -Iui -I../include -o release/CoreApplication.o src/CoreApplication.cpp

It will dump all macro definitions in release/CoreApplication.o, you can post this file.

Can you tell me it is solved or not?

val
Posts: 5
Joined: Mon Jan 21, 2013 6:27 pm

Re: compilation on fedora 64-bit

Postby val » Tue Jan 29, 2013 2:16 pm

Thank you. I came to the same solution and just have been writing the answer :) I'm running gcc 4.7.2. With this (including unistd.h) I was able to compile the devel version, however, the test 2.5.0 version failed from different reason:

After some googling, I've found a solution for the current devel version (20130122). I had to include the unistd.h header file to followings:

GpCoreTools/CoreApplication.cpp
GpCoreTools/DaemonApplication.cpp
GpCoreTools/EventStream.cpp

then the devel version compiled fine.

However, this is only the devel version. In the 2.5.0. test version, I had to include unistd.h to the following file:

QGpCoreTools/Leds.cpp

Nevertheless, the compilation failed on the GeopsyGui/DirectoryMonitor.cpp file with the following error:

g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -O2 -Wall -W -D_REENTRANT -fPIC -DMAKE_GEOPSYGUI_DLL -DQT_NO_DEBUG -DQT_SCRIPT_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtScript -I/usr/include -Isrc -Iui -I../include -Irelease -Iui -o release/DirectoryMonitor.o src/DirectoryMonitor.cpp
src/DirectoryMonitor.cpp: In member function ‘void GeopsyGui::DirectoryMonitor::checkForNewFiles()’:
src/DirectoryMonitor.cpp:152:47: error: redeclaration of ‘QMap<QString, GeopsyCore::SignalFile*>::iterator it’
src/DirectoryMonitor.cpp:149:33: error: ‘QList<QString>::iterator it’ previously declared here
make[2]: *** [release/DirectoryMonitor.o] Error 1
make[2]: Leaving directory `/home/data/geopsy/src/geopsypack-57items-src-2.5.0/GeopsyGui'
make[1]: *** [release] Error 2
make[1]: Leaving directory `/home/data/geopsy/src/geopsypack-57items-src-2.5.0/GeopsyGui'
make: *** [sub-GeopsyGui-make_default-ordered] Error 2

I've checked the same file from the devel version, and the it iterator is renamed to itmap. What is wrong with the 2.5.0 version?

rizhu
Posts: 3
Joined: Tue Feb 25, 2014 9:10 pm

Re: compilation on fedora 64-bit

Postby rizhu » Wed Feb 26, 2014 4:20 pm

Hello. I've the same problem with the compilation. In this case I'm using Debian Linux 64 bits too.

I did the same tests and the outputs in the terminal were the same.

It takes a lot of time to get the 2.6.0 version?

Thank you.

rizhu

agorbatov
Posts: 13
Joined: Thu Mar 20, 2014 6:33 am

Re: compilation on fedora 64-bit

Postby agorbatov » Mon Mar 24, 2014 12:19 am

I compiled sources from general download link on Suse x64 and had same problems. What is the stable working distribution?

agorbatov
Posts: 13
Joined: Thu Mar 20, 2014 6:33 am

Re: compilation on fedora 64-bit

Postby agorbatov » Tue Mar 25, 2014 7:20 am

I tried previous version and had exactly the same problem. However using include<uistd.h> gave me chance to compile further. I had problem with dfft pack where make failed saying there is no make all rule. I had to runmanually just make command without all. Finally I stacked at
make -f Makefile.Release
make[2]: Entering directory `/home/alexei/Downloads/geopsypack-57items-src-2.4.4/GeopsyGui'
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DMAKE_GEOPSYGUI_DLL -DQT_NO_DEBUG -DQT_SCRIPT_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtScript -I/usr/include -Isrc -Iui -I../include -Irelease -Iui -o release/DirectoryMonitor.o src/DirectoryMonitor.cpp
src/DirectoryMonitor.cpp: In member function ‘void GeopsyGui::DirectoryMonitor::checkForNewFiles()’:
src/DirectoryMonitor.cpp:150:47: error: redeclaration of ‘QMap<QString, GeopsyCore::SignalFile*>::iterator it’
QMap<QString, SignalFile *>::iterator it = _fileMap.find(filePath);
^
src/DirectoryMonitor.cpp:147:33: error: ‘QList<QString>::iterator it’ previously declared here
for(QStringList::iterator it = currentFileList.begin(); it!=currentFileList.end();++it) {
^
make[2]: *** [release/DirectoryMonitor.o] Error 1
make[2]: Leaving directory `/home/alexei/Downloads/geopsypack-57items-src-2.4.4/GeopsyGui'
make[1]: *** [release] Error 2
make[1]: Leaving directory `/home/alexei/Downloads/geopsypack-57items-src-2.4.4/GeopsyGui'
make: *** [sub-GeopsyGui-make_default-ordered] Error 2

tsonne
Posts: 1
Joined: Mon May 19, 2014 2:22 pm

Re: compilation on fedora 64-bit

Postby tsonne » Mon May 19, 2014 4:19 pm

Just in case someone is still interested in getting version 2.5.0 running on some Linux 64 bit systems [Debian Wheezy here, but others should work too]:

I needed to do 5 changes to the source code:

1. + 2. + 3. Include the unistd.h header in these three files:

QGpCoreTools/src/Leds.cpp
GpCoreTools/src/CoreApplication.cpp
GpCoreTools/src/EventStream.cpp

Code: Select all

#include <unistd.h>


4. Change the iterator's name (e.g. 'it' to 'xxx') in a loop in lines 150-153 of this file:

GeopsyGui/src/DirectoryMonitor.cpp

Code: Select all

QMap<QString, SignalFile *>::iterator xxx = _fileMap.find(filePath); // changed
        QFileInfo fi(filePath);
        if (fi.lastModified()>_startTime) {
          if(xxx==_fileMap.end() || xxx.value()==0) { // changed


5. A function declaration seems to be missing in this file:

QGpCoreTools/src/Curve.h

Code: Select all

void prepend( const pointType& p ) { QVector<pointType>::prepend(p); }


I put it right after the very similar 'append()' declaration in line 78. QVector has both these operations and the 'prepend' was apparently just forgotten here.
---

Changes 1 to 4 seem to be due to the 'new' gcc compiler version 4.7:
http://gcc.gnu.org/gcc-4.7/porting_to.html

This should work (it did for me, anyway). This is for all the people who can't wait for version 2.6.0.

gdg
Posts: 11
Joined: Mon May 12, 2008 12:47 pm
Location: INGV

Re: compilation on fedora 64-bit

Postby gdg » Mon Jul 28, 2014 10:40 am

The five steps suggested by tsonne work also
on ubuntu 13.10 64bit (saucy)
for the installation of geopsypackage 2.5.0

Regards
Giuseppe Di Giulio
Giuseppe Di Giulio

admin
Site Admin
Posts: 412
Joined: Mon Aug 13, 2007 11:48 am
Location: ISTerre
Contact:

Re: compilation on fedora 64-bit

Postby admin » Fri Apr 17, 2015 7:50 pm

All these errors have been implemented under current "testing" release (2.7.0). The snapshots of "devel" release have all these fixes implemented for a long time.


Return to “Installation”

Who is online

Users browsing this forum: No registered users and 1 guest