conflicting declaration of 'char
Ryan Schmidt
ryandesign at macports.org
Sat Nov 20 07:47:29 UTC 2021
On Nov 19, 2021, at 00:01, Masha Vecherkovskaya wrote:
> Could someone please have a look, I can’t figure out this one myself. I’m trying to build a program and make fails with
> error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
> 222 | char *ctermid(char *);
>
> I’ve attacheched all steps I’ve taken. I have also tried to use apple clang, but configure fails
>
> Masha
> <strelka make.txt>
So you're looking for help compiling something called "strelka" using MacPorts gcc11 on macOS 10.14. And it is failing with this error:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
from /opt/local/include/gcc11/c++/cwchar:44,
from /opt/local/include/gcc11/c++/bits/postypes.h:40,
from /opt/local/include/gcc11/c++/iosfwd:40,
from /opt/local/include/gcc11/c++/iterator:64,
from /Applications/strelka/build/bootstrap/boost/include/boost/next_prior.hpp:15,
from /Applications/strelka/build/bootstrap/boost/include/boost/utility.hpp:18,
from /Applications/strelka/src/c++/lib/applications/strelka/somatic_result_set.hh:27,
from /Applications/strelka/src/c++/lib/applications/strelka/SomaticIndelVcfWriter.hh:26,
from /Applications/strelka/src/c++/lib/applications/strelka/SomaticIndelVcfWriter.cpp:23:
/opt/local/lib/gcc11/gcc/x86_64-apple-darwin18/11.2.0/include-fixed/stdio.h:222:10: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
222 | char *ctermid(char *);
| ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
from /Applications/strelka/build/bootstrap/boost/include/boost/config/stdlib/libstdcpp3.hpp:78,
from /Applications/strelka/build/bootstrap/boost/include/boost/config.hpp:48,
from /Applications/strelka/build/bootstrap/boost/include/boost/core/addressof.hpp:15,
from /Applications/strelka/build/bootstrap/boost/include/boost/utility/addressof.hpp:15,
from /Applications/strelka/build/bootstrap/boost/include/boost/utility.hpp:12,
from /Applications/strelka/src/c++/lib/applications/strelka/somatic_result_set.hh:27,
from /Applications/strelka/src/c++/lib/applications/strelka/SomaticIndelVcfWriter.hh:26,
from /Applications/strelka/src/c++/lib/applications/strelka/SomaticIndelVcfWriter.cpp:23:
/opt/local/lib/gcc11/gcc/x86_64-apple-darwin18/11.2.0/include-fixed/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
26 | char *ctermid(char *);
| ^~~~~~~
The first question I would have is: Why use gcc? Can you use clang instead? If so, do that. Clang is the preferred toolchain on macOS.
If gcc is required and that requirement cannot be removed, then you might try the gcc-devel port to get a development version of gcc that's newer than version 11. Maybe this is a gcc bug that has already been fixed after version 11. If not, you may have to report to the bug to the developers of gcc for a fix.
According to this https://github.com/Illumina/strelka/blob/master/docs/userGuide/installation.md#prerequisites-to-build-from-source (if that is indeed the same strelka as the one you're trying to compile) only a C++11-compatible compiler is required, either gcc or clang.
More information about the macports-users
mailing list