Skip to content

Need to set old C++ standard on recent Debian platforms. #1

@charles-plessy

Description

@charles-plessy

Hello,

When compiling SlideSort on a recent Debian (9.1/Stretch) that uses GCC 6.3.0, I get the following error:

mstree.cpp:228:11: error: no match for ‘operator==’ (operand types are ‘std::ofstream {aka std::basic_ofstream<char>}’ and ‘long int’)
   if(dFile==NULL){
           ^

As a quick workaround, I could bypass it by using GCC's option -std=c++98 as follows:

diff --git a/SS_v2/Makefile.gcc b/SS_v2/Makefile.gcc
index 3bb22d6..b1b8546 100644
--- a/SS_v2/Makefile.gcc
+++ b/SS_v2/Makefile.gcc
@@ -10,7 +10,7 @@ objs = blockutil.o pssExecutor.o parallelslidesort.o pmscls.o box.o seq.o comlin
 CXX = g++
 AR = ar
 
-CFLAGS =  -O3 -fPIC -fopenmp
+CFLAGS =  -O3 -fPIC -fopenmp -std=c++98
 
 .SUFFIXES: .cpp .o
 
diff --git a/mst_v2/Makefile.gcc b/mst_v2/Makefile.gcc
index d38f34d..882a6d8 100644
--- a/mst_v2/Makefile.gcc
+++ b/mst_v2/Makefile.gcc
@@ -7,7 +7,7 @@ objs = tree.o mstree.o blockutil.o pssExecutor.o parallelslidesort.o box.o seq.o
 CXX = g++
 AR = ar
 
-CFLAGS = -O3 -fPIC -Wall -L./ -I./ -fopenmp
+CFLAGS = -O3 -fPIC -Wall -L./ -I./ -fopenmp -std=c++98
 
 .SUFFIXES: .cpp .o
 

Have a nice day,

--
Charles Plessy, RIKEN Yokohama, Japan.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions