Hi, On 26/08/17 21:08, Andreas Tille wrote: > Hi, > > I moved disulfinder to Git[1] and tried to track down this issue with my > limited C++ knowledge but failed. The issue is > > ... > make[3]: Entering directory '/build/disulfinder-1.2.11/disulfind/src' > g++ -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/disulfinder-1.2.11=. -fstack-protector-strong -Wformat -Werror=format-security -DDEFAULT_PKGDATADIR=\"/usr/share/disulfind > In file included from Input/utils.h:1:0, > from Input/GlobalDescriptor.cpp:3: > Input/../Common/Matrix.h: In constructor 'Matrix<DATATYPE>::Matrix(int, int, DATATYPE*)': > Input/../Common/Matrix.h:208:3: error: 'Exception' has not been declared > Exception::Assert(nrows>0 && ncols>0,"construction of empty matrix"); > ^~~~~~~~~ The problem is the include guard in Exception.h. Common/Exception.h: #define __EXCEPTION_H By luck, this happens to collide with the include guard used by gcc-7's exception.h header which is pulled in by some standard library includes. /usr/include/c++/7/bits/exception.h: #define __EXCEPTION_H 1 This means that nothing from Exception.h ever gets defined if exception.h gets included first. disulfind is wrong here because the C++ standard explicitly states that all identifiers beginning with two underscores are reserved. Thanks, James
Attachment:
signature.asc
Description: OpenPGP digital signature