You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by air <cn...@gmail.com> on 2011/12/21 03:53:08 UTC

problems when compile fb303 in thrift 0.8

I compile fb303 on CentOS 5.4, compiling thrift is OK, but when compile
fb303 it reports:

[root@x00 fb303]# make
make  all-recursive
make[1]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
Making all in .
make[2]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
Making all in cpp
make[2]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
/usr/local/bin/thrift -o . -I /usr/local/share  --gen cpp:pure_enums
../if/fb303.thrift
make  all-am
make[3]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
-DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
-I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3 -MT
FacebookService.o -MD -MP -MF ".deps/FacebookService.Tpo" -c -o
FacebookService.o `test -f 'gen-cpp/FacebookService.cpp' || echo
'./'`gen-cpp/FacebookService.cpp; \
        then mv -f ".deps/FacebookService.Tpo" ".deps/FacebookService.Po";
else rm -f ".deps/FacebookService.Tpo"; exit 1; fi
if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
-DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
-I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3 -MT
fb303_constants.o -MD -MP -MF ".deps/fb303_constants.Tpo" -c -o
fb303_constants.o `test -f 'gen-cpp/fb303_constants.cpp' || echo
'./'`gen-cpp/fb303_constants.cpp; \
        then mv -f ".deps/fb303_constants.Tpo" ".deps/fb303_constants.Po";
else rm -f ".deps/fb303_constants.Tpo"; exit 1; fi
if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
-DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
-I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3 -MT
fb303_types.o -MD -MP -MF ".deps/fb303_types.Tpo" -c -o fb303_types.o `test
-f 'gen-cpp/fb303_types.cpp' || echo './'`gen-cpp/fb303_types.cpp; \
        then mv -f ".deps/fb303_types.Tpo" ".deps/fb303_types.Po"; else rm
-f ".deps/fb303_types.Tpo"; exit 1; fi
if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
-DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
-I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3 -MT
FacebookBase.o -MD -MP -MF ".deps/FacebookBase.Tpo" -c -o FacebookBase.o
FacebookBase.cpp; \
        then mv -f ".deps/FacebookBase.Tpo" ".deps/FacebookBase.Po"; else
rm -f ".deps/FacebookBase.Tpo"; exit 1; fi
/usr/local/include/thrift/protocol/TBinaryProtocol.tcc: In member function
‘uint32_t
apache::thrift::protocol::TBinaryProtocolT<Transport_>::writeI16(int16_t)’:
/usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147: error: there
are no arguments to ‘htons’ that depend on a template parameter, so a
declaration of ‘htons’ must be available
/usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147: error: (if you
use ‘-fpermissive’, G++ will accept your code, but allowing the use of
an undeclared name is deprecated)
/usr/local/include/thrift/protocol/TBinaryProtocol.tcc: In member function
‘uint32_t
apache::thrift::protocol::TBinaryProtocolT<Transport_>::writeI32(int32_t)’:
/usr/local/include/thrift/protocol/TBinaryProtocol.tcc:154: error: there
are no arguments to ‘htonl’ that depend on a template parameter, so a
declaration of ‘htonl’ must be available
make[3]: *** [FacebookBase.o] Error 1
make[3]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
make: *** [all] Error 2

what caused this, thank you for your help in advance !

-- 
Knowledge Mangement .

Re: problems when compile fb303 in thrift 0.8

Posted by air <cn...@gmail.com>.
it solved my problem, really thank you for your help !

2011/12/21 James Warren <ja...@stanfordalumni.org>

> I actually ran across this a couple of days ago.  The issue is that if you
> don't define specific flags when configuring the project, you won't include
> the <netinet/in.h> header correctly.  Try
>
> % ./configure CPPFLAGS="-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H"
> % make
>
> when you're building thrift / fb303 and hopefully your compile errors will
> be resolved.
>
> cheers,
> -jw
>
>
> On Tue, Dec 20, 2011 at 6:53 PM, air <cn...@gmail.com> wrote:
>
> > I compile fb303 on CentOS 5.4, compiling thrift is OK, but when compile
> > fb303 it reports:
> >
> > [root@x00 fb303]# make
> > make  all-recursive
> > make[1]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
> > Making all in .
> > make[2]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
> > make[2]: Nothing to be done for `all-am'.
> > make[2]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
> > Making all in cpp
> > make[2]: Entering directory
> `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
> > /usr/local/bin/thrift -o . -I /usr/local/share  --gen cpp:pure_enums
> > ../if/fb303.thrift
> > make  all-am
> > make[3]: Entering directory
> `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
> > if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
> > -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
> > -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
> > -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3
> -MT
> > FacebookService.o -MD -MP -MF ".deps/FacebookService.Tpo" -c -o
> > FacebookService.o `test -f 'gen-cpp/FacebookService.cpp' || echo
> > './'`gen-cpp/FacebookService.cpp; \
> >        then mv -f ".deps/FacebookService.Tpo" ".deps/FacebookService.Po";
> > else rm -f ".deps/FacebookService.Tpo"; exit 1; fi
> > if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
> > -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
> > -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
> > -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3
> -MT
> > fb303_constants.o -MD -MP -MF ".deps/fb303_constants.Tpo" -c -o
> > fb303_constants.o `test -f 'gen-cpp/fb303_constants.cpp' || echo
> > './'`gen-cpp/fb303_constants.cpp; \
> >        then mv -f ".deps/fb303_constants.Tpo" ".deps/fb303_constants.Po";
> > else rm -f ".deps/fb303_constants.Tpo"; exit 1; fi
> > if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
> > -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
> > -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
> > -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3
> -MT
> > fb303_types.o -MD -MP -MF ".deps/fb303_types.Tpo" -c -o fb303_types.o
> `test
> > -f 'gen-cpp/fb303_types.cpp' || echo './'`gen-cpp/fb303_types.cpp; \
> >        then mv -f ".deps/fb303_types.Tpo" ".deps/fb303_types.Po"; else rm
> > -f ".deps/fb303_types.Tpo"; exit 1; fi
> > if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
> > -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
> > -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
> > -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3
> -MT
> > FacebookBase.o -MD -MP -MF ".deps/FacebookBase.Tpo" -c -o FacebookBase.o
> > FacebookBase.cpp; \
> >        then mv -f ".deps/FacebookBase.Tpo" ".deps/FacebookBase.Po"; else
> > rm -f ".deps/FacebookBase.Tpo"; exit 1; fi
> > /usr/local/include/thrift/protocol/TBinaryProtocol.tcc: In member
> function
> > ‘uint32_t
> >
> >
> apache::thrift::protocol::TBinaryProtocolT<Transport_>::writeI16(int16_t)’:
> > /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147: error: there
> > are no arguments to ‘htons’ that depend on a template parameter, so a
> > declaration of ‘htons’ must be available
> > /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147: error: (if
> you
> > use ‘-fpermissive’, G++ will accept your code, but allowing the use
> of
> > an undeclared name is deprecated)
> > /usr/local/include/thrift/protocol/TBinaryProtocol.tcc: In member
> function
> > ‘uint32_t
> >
> >
> apache::thrift::protocol::TBinaryProtocolT<Transport_>::writeI32(int32_t)’:
> > /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:154: error: there
> > are no arguments to ‘htonl’ that depend on a template parameter, so a
> > declaration of ‘htonl’ must be available
> > make[3]: *** [FacebookBase.o] Error 1
> > make[3]: Leaving directory
> `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
> > make[2]: *** [all] Error 2
> > make[2]: Leaving directory
> `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
> > make[1]: *** [all-recursive] Error 1
> > make[1]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
> > make: *** [all] Error 2
> >
> > what caused this, thank you for your help in advance !
> >
> > --
> > Knowledge Mangement .
> >
>



-- 
Knowledge Mangement .

Re: problems when compile fb303 in thrift 0.8

Posted by James Warren <ja...@stanfordalumni.org>.
I actually ran across this a couple of days ago.  The issue is that if you
don't define specific flags when configuring the project, you won't include
the <netinet/in.h> header correctly.  Try

% ./configure CPPFLAGS="-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H"
% make

when you're building thrift / fb303 and hopefully your compile errors will
be resolved.

cheers,
-jw


On Tue, Dec 20, 2011 at 6:53 PM, air <cn...@gmail.com> wrote:

> I compile fb303 on CentOS 5.4, compiling thrift is OK, but when compile
> fb303 it reports:
>
> [root@x00 fb303]# make
> make  all-recursive
> make[1]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
> Making all in .
> make[2]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
> make[2]: Nothing to be done for `all-am'.
> make[2]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
> Making all in cpp
> make[2]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
> /usr/local/bin/thrift -o . -I /usr/local/share  --gen cpp:pure_enums
> ../if/fb303.thrift
> make  all-am
> make[3]: Entering directory `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
> if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
> -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
> -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3 -MT
> FacebookService.o -MD -MP -MF ".deps/FacebookService.Tpo" -c -o
> FacebookService.o `test -f 'gen-cpp/FacebookService.cpp' || echo
> './'`gen-cpp/FacebookService.cpp; \
>        then mv -f ".deps/FacebookService.Tpo" ".deps/FacebookService.Po";
> else rm -f ".deps/FacebookService.Tpo"; exit 1; fi
> if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
> -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
> -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3 -MT
> fb303_constants.o -MD -MP -MF ".deps/fb303_constants.Tpo" -c -o
> fb303_constants.o `test -f 'gen-cpp/fb303_constants.cpp' || echo
> './'`gen-cpp/fb303_constants.cpp; \
>        then mv -f ".deps/fb303_constants.Tpo" ".deps/fb303_constants.Po";
> else rm -f ".deps/fb303_constants.Tpo"; exit 1; fi
> if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
> -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
> -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3 -MT
> fb303_types.o -MD -MP -MF ".deps/fb303_types.Tpo" -c -o fb303_types.o `test
> -f 'gen-cpp/fb303_types.cpp' || echo './'`gen-cpp/fb303_types.cpp; \
>        then mv -f ".deps/fb303_types.Tpo" ".deps/fb303_types.Po"; else rm
> -f ".deps/fb303_types.Tpo"; exit 1; fi
> if g++ -DPACKAGE_NAME=\"libfb303\" -DPACKAGE_TARNAME=\"libfb303\"
> -DPACKAGE_VERSION=\"20080209\" -DPACKAGE_STRING=\"libfb303\ 20080209\"
> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_BOOST=/\*\*/ -I. -I.
> -I.. -Igen-cpp -I/usr/local/include/thrift -I/usr/include     -Wall -O3 -MT
> FacebookBase.o -MD -MP -MF ".deps/FacebookBase.Tpo" -c -o FacebookBase.o
> FacebookBase.cpp; \
>        then mv -f ".deps/FacebookBase.Tpo" ".deps/FacebookBase.Po"; else
> rm -f ".deps/FacebookBase.Tpo"; exit 1; fi
> /usr/local/include/thrift/protocol/TBinaryProtocol.tcc: In member function
> ‘uint32_t
>
> apache::thrift::protocol::TBinaryProtocolT<Transport_>::writeI16(int16_t)’:
> /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147: error: there
> are no arguments to ‘htons’ that depend on a template parameter, so a
> declaration of ‘htons’ must be available
> /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:147: error: (if you
> use ‘-fpermissive’, G++ will accept your code, but allowing the use of
> an undeclared name is deprecated)
> /usr/local/include/thrift/protocol/TBinaryProtocol.tcc: In member function
> ‘uint32_t
>
> apache::thrift::protocol::TBinaryProtocolT<Transport_>::writeI32(int32_t)’:
> /usr/local/include/thrift/protocol/TBinaryProtocol.tcc:154: error: there
> are no arguments to ‘htonl’ that depend on a template parameter, so a
> declaration of ‘htonl’ must be available
> make[3]: *** [FacebookBase.o] Error 1
> make[3]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
> make[2]: *** [all] Error 2
> make[2]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303/cpp'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/usr/local/src/thrift-0.8.0/contrib/fb303'
> make: *** [all] Error 2
>
> what caused this, thank you for your help in advance !
>
> --
> Knowledge Mangement .
>