pdfgrep 2.1.0 fails to compile when libunac support is enabled
After running ./configure --with-unac
, the build fails with the following error:
/usr/bin/clang++ -DHAVE_CONFIG_H -I. -I.. -I/opt/local/include/poppler/cpp -I/opt/local/include/poppler -I/opt/local/include -I/opt/local/include -pipe -Os -stdlib=libc++ -arch x86_64 -std=c++11 -MT pdfgrep.o -MD -MP -MF .deps/pdfgrep.Tpo -c -o pdfgrep.o pdfgrep.cc
pdfgrep.cc:695:11: error: no viable overloaded '='
pattern = simple_unac(options, pattern);
~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string:820:19: note: candidate function not viable: 'this' argument has type 'const string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >'), but method is not marked const
basic_string& operator=(const basic_string& __str);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string:826:19: note: candidate function not viable: 'this' argument has type 'const string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >'), but method is not marked const
basic_string& operator=(__self_view __sv) {return assign(__sv);}
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string:829:19: note: candidate function not viable: 'this' argument has type 'const string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >'), but method is not marked const
basic_string& operator=(basic_string&& __str)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string:832:45: note: candidate function not viable: 'this' argument has type 'const string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >'), but method is not marked const
_LIBCPP_INLINE_VISIBILITY basic_string& operator=(const value_type* __s) {return assign(__s);}
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string:833:19: note: candidate function not viable: 'this' argument has type 'const string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >'), but method is not marked const
basic_string& operator=(value_type __c);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string:836:19: note: candidate function not viable: 'this' argument has type 'const string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >'), but method is not marked const
basic_string& operator=(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}
^
1 error generated.
I am not entirely sure, but I assume the problem is that the simple_unac()
function expects a non-const argument for pattern
, but the passed variable has a const type. I did not run a full bisect, but the problem was likely introduced with 56f6a846, which changed pattern
from char *
to const string
.
The log excerpt above was produced on macOS 10.12.6 with Xcode 9.2. I can provide the full build log and also config.log if required, but I would assume this problem is not platform-specific.