Iostream.H Error By Downloading Peaksplitter
1
1
Entering edit mode
12.5 years ago
Lisanne ▴ 160

Dear all,

I am using MACS and to analyze chip-seq data. The PeakSplitter can refine the MACS peaks and split the wide peaks into smaller subpeaks. Therefore I want do download the PeakSplitter. I followed the installation manual and by the make thing to make i ceated the following error:

lisanne@linux-5cng:~/Downloads/PeakSplitter_Cpp/PeakSplitter_Linux64/PeakSplitter_v1> make
Building file: SplitPeaks/BedGraphParser.cpp
Invoking: GCC C++ Compiler
g++ -D__UNIX__ -D__64BIT__ -I./SplitPeaks -I./SFL -I./Zlib -O3 -Wall -c -fmessage length=0 -MMD -MP -MF"BedGraphParser.d" -MT"BedGraphParser.d" -o"BedGraphParser.o" "SplitPeaks/BedGraphParser.cpp"
In file included from SplitPeaks/Shared.h:17:0,
             from SplitPeaks/BedGraphParser.h:2,
             from SplitPeaks/BedGraphParser.cpp:1:
./SFL/sfl.h:192:0: warning: "__NO_CTYPE" redefined
/usr/include/c++/4.5/x86_64-suse-linux/bits/os_defines.h:37:0: note: this is the location of the previous definition
./SFL/sfl.h:236:80: fatal error: iostream.h: No such file or directory

compilation terminated. make: * [BedGraphParser.o] Error 1

The error is in the sfl.h file but i can't find it. A paste a part of the sfl.h file below to give you an overview over the file. Can anyone help me with this kind of error?

Many thanks!

Lisanne

#ifndef PRELUDE_INCLUDED               /*  Allow multiple inclusions        */
#define PRELUDE_INCLUDED

#if (defined (__64BIT__))               /*  EDM 96/05/30                     */
#    define __IS_64BIT__                /*  May have 64-bit OS/compiler      */
#else
#    define __IS_32BIT__                /*  Else assume 32-bit OS/compiler   */
#endif

#if (defined WIN32 || defined (_WIN32))
#   undef __WINDOWS__
#   define __WINDOWS__
#   undef __MSDOS__
#   define __MSDOS__
#   undef UNIX                          /*  Some Win32 compilers like RSXNT  */
#   undef unix                          /*    define UNIX as well as Win32   */
#   undef __unix__                      /*    which causes problems...       */
#endif

#if (defined WINDOWS || defined (_WINDOWS) || defined (__WINDOWS__))
#   undef __WINDOWS__
#   define __WINDOWS__
#   undef __MSDOS__
#   define __MSDOS__
#endif

/*  MSDOS               Microsoft C                                          */
/*  _MSC_VER            Microsoft C                                          */
/*  __TURBOC__          Borland Turbo C                                      */
/*  __DJGPP__           D.J. Delorie's GNU C for DOS                         */
#if (defined (MSDOS) || defined (_MSC_VER) || defined (__TURBOC__) \
|| defined (__DJGPP__))
#   undef __MSDOS__
#   define __MSDOS__
#   if (defined (_DEBUG))
#       define DEBUG
#   endif
#endif

/*  EDM 96/05/28                                                             */
/*  __OS2__    Triggered by __EMX__ define and __i386__ define to avoid      */
/*             manual definition (eg, makefile) even though __EMX__ and      */
/*             __i386__ can be used on a MSDOS machine as well.  Here        */
/*             the same work is required at present.                         */
#if (defined (__EMX__) && defined (__i386__))
#   undef __OS2__
#   define __OS2__
#endif

/*  VMS                 VAX C (VAX/VMS)                                      */
/*  __VMS               Dec C (Alpha/OpenVMS)                                */
/*  __vax__             gcc                                                  */
#if (defined (VMS) || defined (__VMS) || defined (__vax__))
#   undef __VMS__
#   define __VMS__
#   if (__VMS_VER >= 70000000)
#       define __VMS_XOPEN
#   endif
#endif

    /*  Try to define a __UTYPE_xxx symbol...                                    */
    /*  unix                SunOS at least                                       */
    /*  __unix__            gcc                                                  */
    /*  _POSIX_SOURCE is various UNIX systems, maybe also VAX/VMS                */
    #if (defined (unix) || defined (__unix__) || defined (_POSIX_SOURCE))
#   if (!defined (__VMS__))
#       undef __UNIX__
#       define __UNIX__
#       if (defined (__alpha))          /*  Digital UNIX is 64-bit           */
#           undef  __IS_32BIT__
#           define __IS_64BIT__
#           define __UTYPE_DECALPHA
#       endif
#   endif
#endif

#if (defined (_AUX))
#   define __UTYPE_AUX
#   define __UNIX__
#elif (defined (__BEOS__))
#   define __UTYPE_BEOS
#   define __UNIX__
#elif (defined (__hpux))
#   define __UTYPE_HPUX
#   define __UNIX__
#   define _INCLUDE_HPUX_SOURCE
#   define _INCLUDE_XOPEN_SOURCE
#   define _INCLUDE_POSIX_SOURCE
#elif (defined (_AIX) || defined (AIX))
#   define __UTYPE_IBMAIX
#   define __UNIX__
#elif (defined (BSD) || defined (bsd))
#   define __UTYPE_BSDOS
#   define __UNIX__
#elif (defined (linux))
#   define __UTYPE_LINUX
#   define __UNIX__
#   define __NO_CTYPE                   /*  Suppress warnings on tolower()   */
#elif (defined (Mips))
#   define __UTYPE_MIPS
#   define __UNIX__
#elif (defined (FreeBSD) || defined (__FreeBSD__))
#   define __UTYPE_FREEBSD
#   define __UNIX__
#elif (defined (NetBSD) || defined (__NetBSD__))
#   define __UTYPE_NETBSD
#   define __UNIX__
#elif (defined (NeXT))
#   define __UTYPE_NEXT
#   define __UNIX__
#elif (defined (__QNX__))
#   define __UTYPE_QNX
#   define __UNIX__
#elif (defined (sco))
#   define __UTYPE_SCO
#   define __UNIX__
#elif (defined (sgi))
#   define __UTYPE_IRIX
#   define __UNIX__
#elif (defined (sinix))
#   define __UTYPE_SINIX
#   define __UNIX__
#elif (defined (SOLARIS) || defined (__SRV4))
#   define __UTYPE_SUNSOLARIS
#   define __UNIX__
#elif (defined (SUNOS) || defined (SUN) || defined (sun))
#   define __UTYPE_SUNOS
#   define __UNIX__
#elif (defined (__USLC__) || defined (UnixWare))
#   define __UTYPE_UNIXWARE
#   define __UNIX__
#elif (defined (__DJGPP__))       /* DJGPP thinks it's running in Unix. heh. */
#   undef __UNIX__
#elif (defined __UNIX__)
#   define __UTYPE_GENERIC
#endif


/*- Standard ANSI include files ---------------------------------------------*/

#ifdef __cplusplus
#include <iostream.h>                   /*  A bit of support for C++         */
#endif

#include <ctype.h>
#include <limits.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <time.h>
#include <errno.h>
#include <float.h>
#include <math.h>
#include <signal.h>
#include <setjmp.h>


/*- System-specific include files -------------------------------------------*/

#if (defined (__MSDOS__))
#   if (defined (__WINDOWS__))          /*  When __WINDOWS__ is defined,     */
#       define FD_SETSIZE     1024      /*  Max. filehandles/sockets         */
#       include <windows.h>  
#       include <winsock.h>             /*  May cause trouble on VC 1.x      */
#       include <direct.h>   
#       include <process.h>   
#   endif
#   if (defined (__TURBOC__))
#       include <dir.h>
#       include <alloc.h>               /*  Okay for Turbo C                 */
#   else
#       include <malloc.h>              /*  But will it work for others?     */
#   endif
#   include <dos.h>
#   include <io.h>
#   include <fcntl.h>
#   include <sys\types.h>
#   include <sys\stat.h>
#endif
installation error • 7.7k views
ADD COMMENT
0
Entering edit mode

what is the platform where you're compiling this program (linux, mac, window , ?.... ) ?

ADD REPLY
0
Entering edit mode

@ Pierre: Sorry, I forget to note that, but it is on linux (SUSE)

ADD REPLY
0
Entering edit mode

ah yes, I should have seen it "x86_64-suse-linux"

ADD REPLY
4
Entering edit mode
12.5 years ago

edit this file and replace:

#include <iostream.h>

by

#include <iostream>
ADD COMMENT
2
Entering edit mode

run "make clean" after each change

ADD REPLY
2
Entering edit mode

add #include <cstdio> at the top of the file.

ADD REPLY
1
Entering edit mode

Im here nearly a decade later and Pierre's solutions still work. I follwed the README in PeakSplitter.

When there was an iostream issue I did this:

#include <iostream.h>

replaced by

#include <iostream> 

and when there is an EOF issue I added this to the top of the file:

#include <cstdio>

All set now. Cheers.

ADD REPLY
1
Entering edit mode

(I'm compiling on my side) in ./SplitPeaks/tclap/MultiArg.h and in ./SplitPeaks/tclap/ValueArg.h add #include<cstdio> add the top of the file

ADD REPLY
0
Entering edit mode

This solved my problem. In my first attempt I've only added #include<cstdio> to ./SplitPeaks/tclap/MultiArg.h. but adding it also to ./SplitPeaks/tclap/ValueArg.h worked.

I've posted the complete debugging in MACS google groups citing this thread. Thanks a lot for your time!

ADD REPLY
0
Entering edit mode

Dear Pierre, that sound good! That problem in fixed, but when i fixed that i fail to another error:

SplitPeaks/BedGraphParser.h:12:15: error: extra qualification ‘BedGraphParser::’ on member ‘nextPosition’ make: *** [BedGraphParser.o] Error 1

Do you have any experience with this kind of error? Thanks!

ADD REPLY
0
Entering edit mode

In BedGraphParser.h remove "BedGraphParser::" before "nextPosition"

ADD REPLY
0
Entering edit mode

You are not gonna believe it but then i get the next error: EOF waaas not decleared in this scope. Pff is it hopeless to solve this problem?

ADD REPLY
0
Entering edit mode

Wooowh! He is running. Many many thanks to Pierre Lindenbaum! It's Great!

ADD REPLY
0
Entering edit mode

Hi all, followed these instructions and now am stuck just like Lisanne "./SplitPeaks/tclap/MultiArg.h:103:23: error: 'EOF' was not declared in this scope" How did you solve this? Cheers

ADD REPLY
0
Entering edit mode

I'm also trying to compile in Ubuntu and got the same error. After changing the "iostream" line and compiling A new error comes up: ./SFL/sfl.h:192:0: warning: "_NOCTYPE" redefined /usr/include/c++/4.5/x8664-linux-gnu/bits/osdefines.h:37:0: note: this is the location of the previous definition In file included from /usr/include/c++/4.5/backward/strstream:47:0, from SplitPeaks/SequenceDownloader.h:2, from SplitPeaks/SequenceDownloader.cpp:1: /usr/include/c++/4.5/backward/backwardwarning.h:28:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backwardwarning.h. To disable this warning use -Wno-deprecated. SplitPeaks/SequenceDownloader.cpp:18:22: fatal error: iostream.h: No such file or directory compilation terminated. make: * [SequenceDownloader.o] Error 1

Any ideas on how to solve it?

ADD REPLY
0
Entering edit mode

edit SequenceDownloader.cpp and change iostream.h too. This code looks too old.

ADD REPLY
0
Entering edit mode

I forgot to apply the code re-update on the main server - I did on test only ;-), let me see if I can start it

ADD REPLY
0
Entering edit mode

Thanks for your help Pierre, but still not working. After changing iostream.h -> iostream in SequenceDownloader.cpp, I got a similar error as Fred De Masi and added #include <cstdio> to MultiArg.h (make clean -> make after each change). The new error is now:

In file included from ./SplitPeaks/tclap/UnlabeledValueArg.h:30:0, from SplitPeaks/tclap/CmdLine.h:28, from SplitPeaks/SplitPeaks.cpp:5: ./SplitPeaks/tclap/ValueArg.h: In member function 'int TCLAP::VALUEARGHELPER::ValueExtractor<T>::extractValue(const std::string&)': ./SplitPeaks/tclap/ValueArg.h:103:35: error: 'EOF' was not declared in this scope make: * [SplitPeaks.o] Error 1

Any other suggestions?

ADD REPLY
0
Entering edit mode

#include <csdtio> was not declared. I can't debug all your files. Please, show your files to a C++ programmer.

ADD REPLY
1
Entering edit mode

Thanks anyway. I'll contact the developers of PeakSplitter.

edit: Every time something needs compiling, I die a little inside.

ADD REPLY

Login before adding your answer.

Traffic: 1953 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6