Rainer Müller activity https://gitlab.com/raimue 2018-05-23T13:51:51Z tag:gitlab.com,2018-05-23:209370383 Rainer Müller commented on issue #26 at pdfgrep / pdfgrep 2018-05-23T13:51:51Z raimue Rainer Müller

Thank you for the fix. I confirmed 2.1.1 works as expected.

tag:gitlab.com,2018-05-11:203307210 Rainer Müller opened issue #26: pdfgrep 2.1.0 fails to compile when libunac support is enabled at pdfgrep / pdfgrep 2018-05-11T00:19:06Z raimue Rainer Müller

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.