Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make: a2functional.h:173:38: error: expected type-specifier before string constant #645

Open
jsnsgd opened this Issue May 6, 2016 · 2 comments

Comments

Projects
None yet
3 participants
@jsnsgd
Copy link

jsnsgd commented May 6, 2016

I am trying to build Aria2 on a Raspberry Pi 1 model B. I have installed all the necessary packages specified in README, autoconf -i ran with no errors, ./configure ran with no errors. But when I ran make, it gave me an error. Here is the full output:

make  all-recursive                                                                                                                                  
make[1]: Entering directory '/opt/aria2'                                                                                                             
Making all in po                                                                                                                                     
make[2]: Entering directory '/opt/aria2/po'                                                                                                          
make aria2.pot-update                                                                                                                                
make[3]: Entering directory '/opt/aria2/po'                                                                                                          
sed -e '/^#/d' remove-potcdate.sin > t-remove-potcdate.sed                                                                                           
mv t-remove-potcdate.sed remove-potcdate.sed                                                                                                         
if LC_ALL=C grep 'GNU aria2' ../* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \                                                                
  package_gnu='GNU '; \                                                                                                                              
else \                                                                                                                                               
  package_gnu=''; \                                                                                                                                  
fi; \                                                                                                                                                
if test -n 'https://aria2.github.io/' || test 'https://github.com/aria2/aria2/issues' = '@'PACKAGE_BUGREPORT'@'; then \                              
  msgid_bugs_address='https://aria2.github.io/'; \                                                                                                   
else \                                                                                                                                               
  msgid_bugs_address='https://github.com/aria2/aria2/issues'; \                                                                                      
fi; \                                                                                                                                                
case `: --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \                                                                                             
  '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \                                                                           
    : --default-domain=aria2 --directory=.. \                                                                                                        
      --add-comments=TRANSLATORS: --keyword=_ --keyword=N_  \                                                                                        
      --files-from=./POTFILES.in \                                                                                                                   
      --copyright-holder='Tatsuhiro Tsujikawa' \                                                                                                     
      --msgid-bugs-address="$msgid_bugs_address" \                                                                                                   
    ;; \                                                                                                                                             
  *) \                                                                                                                                               
    : --default-domain=aria2 --directory=.. \                                                                                                        
      --add-comments=TRANSLATORS: --keyword=_ --keyword=N_  \                                                                                        
      --files-from=./POTFILES.in \                                                                                                                   
      --copyright-holder='Tatsuhiro Tsujikawa' \                                                                                                     
      --package-name="${package_gnu}aria2" \                                                                                                         
      --package-version='1.22.0' \                                                                                                                   
      --msgid-bugs-address="$msgid_bugs_address" \                                                                                                   
    ;; \                                                                                                                                             
esac                                                                                                                                                 
test ! -f aria2.po || { \                                                                                                                            
  if test -f ./aria2.pot; then \                                                                                                                     
    sed -f remove-potcdate.sed < ./aria2.pot > aria2.1po && \                                                                                        
    sed -f remove-potcdate.sed < aria2.po > aria2.2po && \                                                                                           
    if cmp aria2.1po aria2.2po >/dev/null 2>&1; then \                                                                                               
      rm -f aria2.1po aria2.2po aria2.po; \                                                                                                          
    else \                                                                                                                                           
      rm -f aria2.1po aria2.2po ./aria2.pot && \                                                                                                     
      mv aria2.po ./aria2.pot; \                                                                                                                     
    fi; \                                                                                                                                            
  else \                                                                                                                                             
    mv aria2.po ./aria2.pot; \                                                                                                                       
  fi; \                                                                                                                                              
}                                                                                                                                                    
make[3]: Leaving directory '/opt/aria2/po'                                                                                                           
test ! -f ./aria2.pot || \                                                                                                                           
  test -z "" || make                                                                                                                                 
make[2]: Leaving directory '/opt/aria2/po'                                                                                                           
Making all in lib                                                                                                                                    
make[2]: Entering directory '/opt/aria2/lib'                                                                                                         
make[2]: Nothing to be done for 'all'.                                                                                                               
make[2]: Leaving directory '/opt/aria2/lib'                                                                                                          
Making all in deps                                                                                                                                   
make[2]: Entering directory '/opt/aria2/deps'                                                                                                        
Making all in wslay                                                                                                                                  
make[3]: Entering directory '/opt/aria2/deps/wslay'                                                                                                  
make  all-recursive                                                                                                                                  
make[4]: Entering directory '/opt/aria2/deps/wslay'                                                                                                  
Making all in lib                                                                                                                                    
make[5]: Entering directory '/opt/aria2/deps/wslay/lib'                                                                                              
Making all in includes                                                                                                                               
make[6]: Entering directory '/opt/aria2/deps/wslay/lib/includes'                                                                                     
make[6]: Nothing to be done for 'all'.                                                                                                               
make[6]: Leaving directory '/opt/aria2/deps/wslay/lib/includes'                                                                                      
make[6]: Entering directory '/opt/aria2/deps/wslay/lib'                                                                                              
/bin/bash ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -DHAVE_CONFIG_H -I./includes -I./includes  -Wall -g -O2 -MT wslay_frame.
lo -MD -MP -MF .deps/wslay_frame.Tpo -c -o wslay_frame.lo wslay_frame.c                                                                              
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DHAVE_CONFIG_H -I./includes -I./includes -Wall -g -O2 -MT wslay_frame.lo -MD -MP -MF .deps/wslay_fra
me.Tpo -c wslay_frame.c  -fPIC -DPIC -o .libs/wslay_frame.o                                                                                          
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DHAVE_CONFIG_H -I./includes -I./includes -Wall -g -O2 -MT wslay_frame.lo -MD -MP -MF .deps/wslay_fra
me.Tpo -c wslay_frame.c -o wslay_frame.o >/dev/null 2>&1                                                                                             
mv -f .deps/wslay_frame.Tpo .deps/wslay_frame.Plo                                                                                                    
/bin/bash ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -DHAVE_CONFIG_H -I./includes -I./includes  -Wall -g -O2 -MT wslay_event.
lo -MD -MP -MF .deps/wslay_event.Tpo -c -o wslay_event.lo wslay_event.c                                                                              
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DHAVE_CONFIG_H -I./includes -I./includes -Wall -g -O2 -MT wslay_event.lo -MD -MP -MF .deps/wslay_eve
nt.Tpo -c wslay_event.c  -fPIC -DPIC -o .libs/wslay_event.o                                                                                          
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DHAVE_CONFIG_H -I./includes -I./includes -Wall -g -O2 -MT wslay_event.lo -MD -MP -MF .deps/wslay_eve
nt.Tpo -c wslay_event.c -o wslay_event.o >/dev/null 2>&1                                                                                             
mv -f .deps/wslay_event.Tpo .deps/wslay_event.Plo                                                                                                    
/bin/bash ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -DHAVE_CONFIG_H -I./includes -I./includes  -Wall -g -O2 -MT wslay_queue.
lo -MD -MP -MF .deps/wslay_queue.Tpo -c -o wslay_queue.lo wslay_queue.c                                                                              
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DHAVE_CONFIG_H -I./includes -I./includes -Wall -g -O2 -MT wslay_queue.lo -MD -MP -MF .deps/wslay_que
ue.Tpo -c wslay_queue.c  -fPIC -DPIC -o .libs/wslay_queue.o                                                                                          
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DHAVE_CONFIG_H -I./includes -I./includes -Wall -g -O2 -MT wslay_queue.lo -MD -MP -MF .deps/wslay_que
ue.Tpo -c wslay_queue.c -o wslay_queue.o >/dev/null 2>&1                                                                                             
mv -f .deps/wslay_queue.Tpo .deps/wslay_queue.Plo                                                                                                    
/bin/bash ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -DHAVE_CONFIG_H -I./includes -I./includes  -Wall -g -O2 -MT wslay_net.lo
 -MD -MP -MF .deps/wslay_net.Tpo -c -o wslay_net.lo wslay_net.c                                                                                      
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DHAVE_CONFIG_H -I./includes -I./includes -Wall -g -O2 -MT wslay_net.lo -MD -MP -MF .deps/wslay_net.T
po -c wslay_net.c  -fPIC -DPIC -o .libs/wslay_net.o                                                                                                  
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DHAVE_CONFIG_H -I./includes -I./includes -Wall -g -O2 -MT wslay_net.lo -MD -MP -MF .deps/wslay_net.T
po -c wslay_net.c -o wslay_net.o >/dev/null 2>&1                                                                                                     
mv -f .deps/wslay_net.Tpo .deps/wslay_net.Plo                                                                                                        
/bin/bash ../libtool --tag=CC   --mode=link gcc -Wall -g -O2 -no-undefined -version-info 0:1:0  -o libwslay.la   wslay_frame.lo wslay_event.lo wslay_
queue.lo wslay_net.lo                                                                                                                                
libtool: link: warning: `-version-info/-version-number' is ignored for convenience libraries                                                         
libtool: link: ar cru .libs/libwslay.a .libs/wslay_frame.o .libs/wslay_event.o .libs/wslay_queue.o .libs/wslay_net.o                                 
libtool: link: ranlib .libs/libwslay.a                                                                                                               
libtool: link: ( cd ".libs" && rm -f "libwslay.la" && ln -s "../libwslay.la" "libwslay.la" )                                                         
make[6]: Leaving directory '/opt/aria2/deps/wslay/lib'                                                                                               
make[5]: Leaving directory '/opt/aria2/deps/wslay/lib'                                                                                               
Making all in tests                                                                                                                                  
make[5]: Entering directory '/opt/aria2/deps/wslay/tests'                                                                                            
make[5]: Nothing to be done for 'all'.                                                                                                               
make[5]: Leaving directory '/opt/aria2/deps/wslay/tests'                                                                                             
make[5]: Entering directory '/opt/aria2/deps/wslay'                                                                                                  
make[5]: Leaving directory '/opt/aria2/deps/wslay'                                                                                                   
make[4]: Leaving directory '/opt/aria2/deps/wslay'                                                                                                   
make[3]: Leaving directory '/opt/aria2/deps/wslay'                                                                                                   
make[3]: Entering directory '/opt/aria2/deps'                                                                                                        
make[3]: Nothing to be done for 'all-am'.                                                                                                            
make[3]: Leaving directory '/opt/aria2/deps'                                                                                                         
make[2]: Leaving directory '/opt/aria2/deps'                                                                                                         
Making all in src                                                                                                                                    
make[2]: Entering directory '/opt/aria2/src'                                                                                                         
Making all in includes                                                                                                                               
make[3]: Entering directory '/opt/aria2/src/includes'                                                                                                
make[3]: Nothing to be done for 'all'.                                                                                                               
make[3]: Leaving directory '/opt/aria2/src/includes'                                                                                                 
make[3]: Entering directory '/opt/aria2/src'                                                                                                         
  CXX    A2STR.lo                                                                                                                                    
  CXX    AbstractAuthResolver.lo                                                                                                                     
In file included from AbstractAuthResolver.cc:37:0:                                                                                                  
a2functional.h:173:38: error: expected type-specifier before string constant                                                                         
a2functional.h:178:38: error: expected type-specifier before string constant                                                                         
a2functional.h:183:38: error: expected type-specifier before string constant                                                                         
a2functional.h:188:38: error: expected type-specifier before string constant                                                                         
a2functional.h:193:40: error: expected type-specifier before string constant                                                                         
a2functional.h:198:40: error: expected type-specifier before string constant                                                                         
a2functional.h:203:45: error: expected type-specifier before string constant                                                                         
Makefile:2292: recipe for target 'AbstractAuthResolver.lo' failed                                                                                    
make[3]: *** [AbstractAuthResolver.lo] Error 1                                                                                                       
make[3]: Leaving directory '/opt/aria2/src'                                                                                                          
Makefile:2334: recipe for target 'all-recursive' failed                                                                                              
make[2]: *** [all-recursive] Error 1                                                                                                                 
make[2]: Leaving directory '/opt/aria2/src'                                                                                                          
Makefile:490: recipe for target 'all-recursive' failed                                                                                               
make[1]: *** [all-recursive] Error 1                                                                                                                 
make[1]: Leaving directory '/opt/aria2'                                                                                                              
Makefile:400: recipe for target 'all' failed                                                                                                         
make: *** [all] Error 2`
@tatsuhiro-t

This comment has been minimized.

Copy link
Collaborator

tatsuhiro-t commented May 6, 2016

This probably suggests that C++ compiler is a bit old. aria2 requires at least gcc >= 4.8.3 or clang >= 3.4.

@Artoria2e5

This comment has been minimized.

Copy link
Contributor

Artoria2e5 commented May 7, 2016

Try -std=c++11 or -std=gnu++11. Custom literal is a C++11 thing, and older compilers may either don't support this feature or don't use this language standard by default (which is the case for g++ 4.7 where user-defined literals has already been implemented).

For building with confidence, my suggestion is to explicitly include language standard definitions (C & C++) in the project-default c{,xx}flags (AM_CFLAGS?).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.