You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Chris Seto <ch...@gmail.com> on 2015/06/23 20:04:05 UTC

Advice for a possibly unique Thrift build environment?

Hi all,

I am a beginner to the Thrift framework, and I'm looking into using 
Thrift on a project which is half embedded (actually C++ on embedded 
Linux) and half C#. Obviously the C# side is standard affair, so I'm not 
worried about it at all.

On the embedded side, I am running a little embedded Linux computer 
running Angstrom Linux. While I can build either natively or on a 
desktop Linux target, I actually have been cross compiling my 
application on my Windows machine With the GCC-Linaro toolchain.

Obviously, I can run the thrift compiler on my Windows machine, so 
generating the subs isn't a big deal.

I'm more wondering how to include the Thrift libraries in the project. I 
do have an Ubuntu Linux machine which has Thrift "installed", but what 
exactly is the Thrift installation doing, and what is the best way to 
include Thrift into my existing C++ project? Is there a clean way that I 
could compile Thrift libs on my Ubuntu machine, then link against them 
on my Windows build environment? Similarly, would it be possible for me 
to simply include the libs as source files in my existing C++ project?

Thanks
-- 

Re: Advice for a possibly unique Thrift build environment?

Posted by Jens Geyer <je...@hotmail.com>.
Hi Chris,

Thrift mainly consists of two parts: the compiler-generated code and the 
library for each language. Depending on the language that library either 
consist a bunch of source files that you have to add to your project, or 
there is some library module that can be built by means of the make step, if 
it isn't already installed onto the machine in question.

To dive into Thrift, I recommend the tutorial (see website). Also what's 
under the /test folder in the repository is worth a look and explains a lot 
of basic stuff just by studying it.

Have fun,
JensG

Disclaimer: I personally don't use the C++ stuff that much, so please take 
that part with a grain of salt.


-----Ursprüngliche Nachricht----- 
From: Chris Seto
Sent: Tuesday, June 23, 2015 8:04 PM
To: user@thrift.apache.org
Subject: Advice for a possibly unique Thrift build environment?

Hi all,

I am a beginner to the Thrift framework, and I'm looking into using
Thrift on a project which is half embedded (actually C++ on embedded
Linux) and half C#. Obviously the C# side is standard affair, so I'm not
worried about it at all.

On the embedded side, I am running a little embedded Linux computer
running Angstrom Linux. While I can build either natively or on a
desktop Linux target, I actually have been cross compiling my
application on my Windows machine With the GCC-Linaro toolchain.

Obviously, I can run the thrift compiler on my Windows machine, so
generating the subs isn't a big deal.

I'm more wondering how to include the Thrift libraries in the project. I
do have an Ubuntu Linux machine which has Thrift "installed", but what
exactly is the Thrift installation doing, and what is the best way to
include Thrift into my existing C++ project? Is there a clean way that I
could compile Thrift libs on my Ubuntu machine, then link against them
on my Windows build environment? Similarly, would it be possible for me
to simply include the libs as source files in my existing C++ project?

Thanks
--  


Re: Advice for a possibly unique Thrift build environment?

Posted by Randy Abernethy <ra...@apache.org>.
Ah, I see, sounds like a good approach. If it built your are on the other
side! Good luck with Thrift and let us know how things go.

-Randy

On Tue, Jun 23, 2015 at 6:07 PM, Chris Seto <ch...@gmail.com> wrote:

> Hi Randy,
>
> The one thing to remember is that I'm not building for a Windows target,
> I'm building for a Linux target using a cross-compiler running on Windows.
> So, I'm not sure how to handle some of the config values, since I don't
> really know what the cross compiler supports.
>
> That said, I did include the stock config file generated by ./configure on
> Ubuntu and the project as a whole did actually build. Hopefully a lot of
> those config items are correct or unused in such a simple implementation of
> the Thrift C++ server.
> ======
> Chris Seto
> http://www.chrisseto.com
> ======
> On 6/23/2015 1:55 PM, Randy Abernethy wrote:
>
>> Hey Chris,
>>
>> Yes, configure gens the config.h on *.nix.
>>
>> thrift@ubuntu:~/thrift$ head config.h
>>       /* config.h.  Generated from config.hin by configure.  */
>>       /* config.hin.  Generated from configure.ac by autoheader.  */
>>
>>
>>       #ifndef CONFIG_H
>>       #define CONFIG_H
>>
>>
>>       /* Define if the AI_ADDRCONFIG symbol is unavailable */
>>       /* #undef AI_ADDRCONFIG */
>>
>>
>> On Windows there is a static config.h which should be used (you will
>> suffer mightily if you try to use a Linux config on Windows [not that I
>> have, er, tried...]):
>>
>> thrift@ubuntu:~/thrift$ tail lib/cpp/src/thrift/windows/config.h
>>      // windows
>>       #include <Winsock2.h>
>>       #include <ws2tcpip.h>
>>       #ifdef _WIN32_WCE
>>       #pragma comment(lib, "Ws2.lib")
>>       #else
>>       #pragma comment(lib, "Ws2_32.lib")
>>       #pragma comment(lib, "advapi32.lib") // For security APIs in
>> TPipeServer
>>       #endif
>>       #endif // _THRIFT_WINDOWS_CONFIG_H_
>>
>> The above config should be included when _WIN32 is defined per below:
>>
>> thrift@ubuntu:~/thrift$ tail -5 lib/cpp/src/thrift/thrift-config.h
>>       #ifdef _WIN32
>>       #include <thrift/windows/config.h>
>>       #else
>>       #include <thrift/config.h>
>>       #endif
>>
>> ...and the whole thing starts here:
>>
>> thrift@ubuntu:~/thrift$ head -29 lib/cpp/src/thrift/Thrift.h | tail
>>       #ifndef _THRIFT_THRIFT_H_
>>       #define _THRIFT_THRIFT_H_ 1
>>
>>       #include <thrift/transport/PlatformSocket.h>
>>
>>       #include <thrift/thrift-config.h>
>>
>>       #include <stdio.h>
>>       #include <assert.h>
>>
>> Further, be advised that there is a Visual Studio solution for libthrift
>> and libthriftnb here:
>> thrift@ubuntu:~/thrift$ ls -l lib/cpp/*.sln
>> -rw-rw-r-- 1 thrift thrift 3625 Jun 22 14:41 lib/cpp/thrift.sln
>>
>> This solution is a good place to figure out what you might need to be
>> building (and
>> not bad for building the libs/dlls should you change tack).
>>
>> The thrift build system is slowly migrating to cmake, which is
>> particularly
>> Windows friendly. This:
>>
>> thrift@ubuntu:~/thrift$ cmake .
>> ...
>> thrift@ubuntu:~/thrift$ make
>> ...
>>
>> will build the compiler and C++ libs on Linux. Do not think cmake is
>> tweaked to
>> run on Windows directly yet though. Roger has posted some nice notes here:
>>
>> https://github.com/apache/thrift/blob/1568aef7d499153469131449ec682998598f0d3c/build/cmake/README.md
>>
>> Also there is a pre built thrift compiler for Windows here:
>> https://thrift.apache.org/download
>>
>> Hope this helps,
>> Randy
>>
>> P.S. I am faking this until someone who knows what they're talking about,
>> like Roger or Jake, steps in...
>>
>>
>> On Tue, Jun 23, 2015 at 1:15 PM, Chris Seto <ch...@gmail.com> wrote:
>>
>>  Hi Randy,
>>>
>>> Thanks, this is exactly the information I needed. For clarification, it
>>> looks like I obviously need the directory:
>>> thrift-0.9.2\lib\cpp\src\thrift
>>> , though is there anything else that might be more obscure?
>>>
>>> The second question I have is in regards to the config.h file. This file
>>> is included by thrift-0.9.2\lib\cpp\src\thrift\thrift-config.h, and it is
>>> not normally present in the source tree. It looks like it's probably a
>>> product of ./configure. What's the best way to get this file? Should I
>>> simply ./configure on my Linux target, then copy the file over and edit,
>>> or
>>> is there a better way?
>>>
>>> Otherwise, the process seems fairly typical. The config file was the big
>>> catch when I tried to include boiler plate files off the bat.
>>>
>>> Also, thanks Jens as well. I looked through the tutorials quite a bit,
>>> but
>>> the issue was that they don't talk a lot about including the Thrift
>>> library
>>> files into your project, only about using the IDL format.
>>>
>>> ======
>>> Chris Seto
>>> http://www.chrisseto.com
>>> ======
>>>
>>> On 6/23/2015 12:51 PM, Randy Abernethy wrote:
>>>
>>>  Hi Chris,
>>>>
>>>> I often build Thrift C++ apps on Windows without precompiled libs. The
>>>> first time I did it I just added the obvious cpp files from the thrift
>>>> cpp
>>>> lib to my project, built, read through the linker errors, grepped
>>>> around,
>>>> added some more cpp files, and so on. It is pretty easy to pull together
>>>> the necessary cpp source for a client, a bit more work for a server but
>>>> certainly doable. You learn a lot in the process too. Once you have the
>>>> boilerplate list of files you generally depend on it is pretty routine.
>>>> Makes debugging easy too, no need to configure debug and release libs,
>>>> never any problems with the IDE figuring out where the source is when
>>>> you
>>>> want to step into code, etc. I also found building some dependencies on
>>>> windows rough, in particular libevent. It was much easier to just
>>>> compile
>>>> the bits of lib event I needed without trying to make the entire thing
>>>> work.
>>>>
>>>> At the end of the day I use static libs most of the time but just want
>>>> to
>>>> let you know that compiling the Thrift sources into your executable
>>>> directly is no big hardship on any platform.
>>>>
>>>> Best,
>>>> Randy
>>>>
>>>> On Tue, Jun 23, 2015 at 11:04 AM, Chris Seto <ch...@gmail.com>
>>>> wrote:
>>>>
>>>>   Hi all,
>>>>
>>>>> I am a beginner to the Thrift framework, and I'm looking into using
>>>>> Thrift
>>>>> on a project which is half embedded (actually C++ on embedded Linux)
>>>>> and
>>>>> half C#. Obviously the C# side is standard affair, so I'm not worried
>>>>> about
>>>>> it at all.
>>>>>
>>>>> On the embedded side, I am running a little embedded Linux computer
>>>>> running Angstrom Linux. While I can build either natively or on a
>>>>> desktop
>>>>> Linux target, I actually have been cross compiling my application on my
>>>>> Windows machine With the GCC-Linaro toolchain.
>>>>>
>>>>> Obviously, I can run the thrift compiler on my Windows machine, so
>>>>> generating the subs isn't a big deal.
>>>>>
>>>>> I'm more wondering how to include the Thrift libraries in the project.
>>>>> I
>>>>> do have an Ubuntu Linux machine which has Thrift "installed", but what
>>>>> exactly is the Thrift installation doing, and what is the best way to
>>>>> include Thrift into my existing C++ project? Is there a clean way that
>>>>> I
>>>>> could compile Thrift libs on my Ubuntu machine, then link against them
>>>>> on
>>>>> my Windows build environment? Similarly, would it be possible for me to
>>>>> simply include the libs as source files in my existing C++ project?
>>>>>
>>>>> Thanks
>>>>> --
>>>>>
>>>>>
>>>>>
>

Re: Advice for a possibly unique Thrift build environment?

Posted by Chris Seto <ch...@gmail.com>.
Hi Randy,

The one thing to remember is that I'm not building for a Windows target, 
I'm building for a Linux target using a cross-compiler running on 
Windows. So, I'm not sure how to handle some of the config values, since 
I don't really know what the cross compiler supports.

That said, I did include the stock config file generated by ./configure 
on Ubuntu and the project as a whole did actually build. Hopefully a lot 
of those config items are correct or unused in such a simple 
implementation of the Thrift C++ server.
======
Chris Seto
http://www.chrisseto.com
======
On 6/23/2015 1:55 PM, Randy Abernethy wrote:
> Hey Chris,
>
> Yes, configure gens the config.h on *.nix.
>
> thrift@ubuntu:~/thrift$ head config.h
>       /* config.h.  Generated from config.hin by configure.  */
>       /* config.hin.  Generated from configure.ac by autoheader.  */
>
>
>       #ifndef CONFIG_H
>       #define CONFIG_H
>
>
>       /* Define if the AI_ADDRCONFIG symbol is unavailable */
>       /* #undef AI_ADDRCONFIG */
>
>
> On Windows there is a static config.h which should be used (you will
> suffer mightily if you try to use a Linux config on Windows [not that I
> have, er, tried...]):
>
> thrift@ubuntu:~/thrift$ tail lib/cpp/src/thrift/windows/config.h
>      // windows
>       #include <Winsock2.h>
>       #include <ws2tcpip.h>
>       #ifdef _WIN32_WCE
>       #pragma comment(lib, "Ws2.lib")
>       #else
>       #pragma comment(lib, "Ws2_32.lib")
>       #pragma comment(lib, "advapi32.lib") // For security APIs in
> TPipeServer
>       #endif
>       #endif // _THRIFT_WINDOWS_CONFIG_H_
>
> The above config should be included when _WIN32 is defined per below:
>
> thrift@ubuntu:~/thrift$ tail -5 lib/cpp/src/thrift/thrift-config.h
>       #ifdef _WIN32
>       #include <thrift/windows/config.h>
>       #else
>       #include <thrift/config.h>
>       #endif
>
> ...and the whole thing starts here:
>
> thrift@ubuntu:~/thrift$ head -29 lib/cpp/src/thrift/Thrift.h | tail
>       #ifndef _THRIFT_THRIFT_H_
>       #define _THRIFT_THRIFT_H_ 1
>
>       #include <thrift/transport/PlatformSocket.h>
>
>       #include <thrift/thrift-config.h>
>
>       #include <stdio.h>
>       #include <assert.h>
>
> Further, be advised that there is a Visual Studio solution for libthrift
> and libthriftnb here:
> thrift@ubuntu:~/thrift$ ls -l lib/cpp/*.sln
> -rw-rw-r-- 1 thrift thrift 3625 Jun 22 14:41 lib/cpp/thrift.sln
>
> This solution is a good place to figure out what you might need to be
> building (and
> not bad for building the libs/dlls should you change tack).
>
> The thrift build system is slowly migrating to cmake, which is particularly
> Windows friendly. This:
>
> thrift@ubuntu:~/thrift$ cmake .
> ...
> thrift@ubuntu:~/thrift$ make
> ...
>
> will build the compiler and C++ libs on Linux. Do not think cmake is
> tweaked to
> run on Windows directly yet though. Roger has posted some nice notes here:
> https://github.com/apache/thrift/blob/1568aef7d499153469131449ec682998598f0d3c/build/cmake/README.md
>
> Also there is a pre built thrift compiler for Windows here:
> https://thrift.apache.org/download
>
> Hope this helps,
> Randy
>
> P.S. I am faking this until someone who knows what they're talking about,
> like Roger or Jake, steps in...
>
>
> On Tue, Jun 23, 2015 at 1:15 PM, Chris Seto <ch...@gmail.com> wrote:
>
>> Hi Randy,
>>
>> Thanks, this is exactly the information I needed. For clarification, it
>> looks like I obviously need the directory: thrift-0.9.2\lib\cpp\src\thrift
>> , though is there anything else that might be more obscure?
>>
>> The second question I have is in regards to the config.h file. This file
>> is included by thrift-0.9.2\lib\cpp\src\thrift\thrift-config.h, and it is
>> not normally present in the source tree. It looks like it's probably a
>> product of ./configure. What's the best way to get this file? Should I
>> simply ./configure on my Linux target, then copy the file over and edit, or
>> is there a better way?
>>
>> Otherwise, the process seems fairly typical. The config file was the big
>> catch when I tried to include boiler plate files off the bat.
>>
>> Also, thanks Jens as well. I looked through the tutorials quite a bit, but
>> the issue was that they don't talk a lot about including the Thrift library
>> files into your project, only about using the IDL format.
>>
>> ======
>> Chris Seto
>> http://www.chrisseto.com
>> ======
>>
>> On 6/23/2015 12:51 PM, Randy Abernethy wrote:
>>
>>> Hi Chris,
>>>
>>> I often build Thrift C++ apps on Windows without precompiled libs. The
>>> first time I did it I just added the obvious cpp files from the thrift cpp
>>> lib to my project, built, read through the linker errors, grepped around,
>>> added some more cpp files, and so on. It is pretty easy to pull together
>>> the necessary cpp source for a client, a bit more work for a server but
>>> certainly doable. You learn a lot in the process too. Once you have the
>>> boilerplate list of files you generally depend on it is pretty routine.
>>> Makes debugging easy too, no need to configure debug and release libs,
>>> never any problems with the IDE figuring out where the source is when you
>>> want to step into code, etc. I also found building some dependencies on
>>> windows rough, in particular libevent. It was much easier to just compile
>>> the bits of lib event I needed without trying to make the entire thing
>>> work.
>>>
>>> At the end of the day I use static libs most of the time but just want to
>>> let you know that compiling the Thrift sources into your executable
>>> directly is no big hardship on any platform.
>>>
>>> Best,
>>> Randy
>>>
>>> On Tue, Jun 23, 2015 at 11:04 AM, Chris Seto <ch...@gmail.com>
>>> wrote:
>>>
>>>   Hi all,
>>>> I am a beginner to the Thrift framework, and I'm looking into using
>>>> Thrift
>>>> on a project which is half embedded (actually C++ on embedded Linux) and
>>>> half C#. Obviously the C# side is standard affair, so I'm not worried
>>>> about
>>>> it at all.
>>>>
>>>> On the embedded side, I am running a little embedded Linux computer
>>>> running Angstrom Linux. While I can build either natively or on a desktop
>>>> Linux target, I actually have been cross compiling my application on my
>>>> Windows machine With the GCC-Linaro toolchain.
>>>>
>>>> Obviously, I can run the thrift compiler on my Windows machine, so
>>>> generating the subs isn't a big deal.
>>>>
>>>> I'm more wondering how to include the Thrift libraries in the project. I
>>>> do have an Ubuntu Linux machine which has Thrift "installed", but what
>>>> exactly is the Thrift installation doing, and what is the best way to
>>>> include Thrift into my existing C++ project? Is there a clean way that I
>>>> could compile Thrift libs on my Ubuntu machine, then link against them on
>>>> my Windows build environment? Similarly, would it be possible for me to
>>>> simply include the libs as source files in my existing C++ project?
>>>>
>>>> Thanks
>>>> --
>>>>
>>>>


Re: Advice for a possibly unique Thrift build environment?

Posted by Randy Abernethy <ra...@apache.org>.
Hey Chris,

Yes, configure gens the config.h on *.nix.

thrift@ubuntu:~/thrift$ head config.h
     /* config.h.  Generated from config.hin by configure.  */
     /* config.hin.  Generated from configure.ac by autoheader.  */


     #ifndef CONFIG_H
     #define CONFIG_H


     /* Define if the AI_ADDRCONFIG symbol is unavailable */
     /* #undef AI_ADDRCONFIG */


On Windows there is a static config.h which should be used (you will
suffer mightily if you try to use a Linux config on Windows [not that I
have, er, tried...]):

thrift@ubuntu:~/thrift$ tail lib/cpp/src/thrift/windows/config.h
    // windows
     #include <Winsock2.h>
     #include <ws2tcpip.h>
     #ifdef _WIN32_WCE
     #pragma comment(lib, "Ws2.lib")
     #else
     #pragma comment(lib, "Ws2_32.lib")
     #pragma comment(lib, "advapi32.lib") // For security APIs in
TPipeServer
     #endif
     #endif // _THRIFT_WINDOWS_CONFIG_H_

The above config should be included when _WIN32 is defined per below:

thrift@ubuntu:~/thrift$ tail -5 lib/cpp/src/thrift/thrift-config.h
     #ifdef _WIN32
     #include <thrift/windows/config.h>
     #else
     #include <thrift/config.h>
     #endif

...and the whole thing starts here:

thrift@ubuntu:~/thrift$ head -29 lib/cpp/src/thrift/Thrift.h | tail
     #ifndef _THRIFT_THRIFT_H_
     #define _THRIFT_THRIFT_H_ 1

     #include <thrift/transport/PlatformSocket.h>

     #include <thrift/thrift-config.h>

     #include <stdio.h>
     #include <assert.h>

Further, be advised that there is a Visual Studio solution for libthrift
and libthriftnb here:
thrift@ubuntu:~/thrift$ ls -l lib/cpp/*.sln
-rw-rw-r-- 1 thrift thrift 3625 Jun 22 14:41 lib/cpp/thrift.sln

This solution is a good place to figure out what you might need to be
building (and
not bad for building the libs/dlls should you change tack).

The thrift build system is slowly migrating to cmake, which is particularly
Windows friendly. This:

thrift@ubuntu:~/thrift$ cmake .
...
thrift@ubuntu:~/thrift$ make
...

will build the compiler and C++ libs on Linux. Do not think cmake is
tweaked to
run on Windows directly yet though. Roger has posted some nice notes here:
https://github.com/apache/thrift/blob/1568aef7d499153469131449ec682998598f0d3c/build/cmake/README.md

Also there is a pre built thrift compiler for Windows here:
https://thrift.apache.org/download

Hope this helps,
Randy

P.S. I am faking this until someone who knows what they're talking about,
like Roger or Jake, steps in...


On Tue, Jun 23, 2015 at 1:15 PM, Chris Seto <ch...@gmail.com> wrote:

> Hi Randy,
>
> Thanks, this is exactly the information I needed. For clarification, it
> looks like I obviously need the directory: thrift-0.9.2\lib\cpp\src\thrift
> , though is there anything else that might be more obscure?
>
> The second question I have is in regards to the config.h file. This file
> is included by thrift-0.9.2\lib\cpp\src\thrift\thrift-config.h, and it is
> not normally present in the source tree. It looks like it's probably a
> product of ./configure. What's the best way to get this file? Should I
> simply ./configure on my Linux target, then copy the file over and edit, or
> is there a better way?
>
> Otherwise, the process seems fairly typical. The config file was the big
> catch when I tried to include boiler plate files off the bat.
>
> Also, thanks Jens as well. I looked through the tutorials quite a bit, but
> the issue was that they don't talk a lot about including the Thrift library
> files into your project, only about using the IDL format.
>
> ======
> Chris Seto
> http://www.chrisseto.com
> ======
>
> On 6/23/2015 12:51 PM, Randy Abernethy wrote:
>
>> Hi Chris,
>>
>> I often build Thrift C++ apps on Windows without precompiled libs. The
>> first time I did it I just added the obvious cpp files from the thrift cpp
>> lib to my project, built, read through the linker errors, grepped around,
>> added some more cpp files, and so on. It is pretty easy to pull together
>> the necessary cpp source for a client, a bit more work for a server but
>> certainly doable. You learn a lot in the process too. Once you have the
>> boilerplate list of files you generally depend on it is pretty routine.
>> Makes debugging easy too, no need to configure debug and release libs,
>> never any problems with the IDE figuring out where the source is when you
>> want to step into code, etc. I also found building some dependencies on
>> windows rough, in particular libevent. It was much easier to just compile
>> the bits of lib event I needed without trying to make the entire thing
>> work.
>>
>> At the end of the day I use static libs most of the time but just want to
>> let you know that compiling the Thrift sources into your executable
>> directly is no big hardship on any platform.
>>
>> Best,
>> Randy
>>
>> On Tue, Jun 23, 2015 at 11:04 AM, Chris Seto <ch...@gmail.com>
>> wrote:
>>
>>  Hi all,
>>>
>>> I am a beginner to the Thrift framework, and I'm looking into using
>>> Thrift
>>> on a project which is half embedded (actually C++ on embedded Linux) and
>>> half C#. Obviously the C# side is standard affair, so I'm not worried
>>> about
>>> it at all.
>>>
>>> On the embedded side, I am running a little embedded Linux computer
>>> running Angstrom Linux. While I can build either natively or on a desktop
>>> Linux target, I actually have been cross compiling my application on my
>>> Windows machine With the GCC-Linaro toolchain.
>>>
>>> Obviously, I can run the thrift compiler on my Windows machine, so
>>> generating the subs isn't a big deal.
>>>
>>> I'm more wondering how to include the Thrift libraries in the project. I
>>> do have an Ubuntu Linux machine which has Thrift "installed", but what
>>> exactly is the Thrift installation doing, and what is the best way to
>>> include Thrift into my existing C++ project? Is there a clean way that I
>>> could compile Thrift libs on my Ubuntu machine, then link against them on
>>> my Windows build environment? Similarly, would it be possible for me to
>>> simply include the libs as source files in my existing C++ project?
>>>
>>> Thanks
>>> --
>>>
>>>
>

Re: Advice for a possibly unique Thrift build environment?

Posted by Chris Seto <ch...@gmail.com>.
Hi Randy,

Thanks, this is exactly the information I needed. For clarification, it 
looks like I obviously need the directory: 
thrift-0.9.2\lib\cpp\src\thrift , though is there anything else that 
might be more obscure?

The second question I have is in regards to the config.h file. This file 
is included by thrift-0.9.2\lib\cpp\src\thrift\thrift-config.h, and it 
is not normally present in the source tree. It looks like it's probably 
a product of ./configure. What's the best way to get this file? Should I 
simply ./configure on my Linux target, then copy the file over and edit, 
or is there a better way?

Otherwise, the process seems fairly typical. The config file was the big 
catch when I tried to include boiler plate files off the bat.

Also, thanks Jens as well. I looked through the tutorials quite a bit, 
but the issue was that they don't talk a lot about including the Thrift 
library files into your project, only about using the IDL format.

======
Chris Seto
http://www.chrisseto.com
======
On 6/23/2015 12:51 PM, Randy Abernethy wrote:
> Hi Chris,
>
> I often build Thrift C++ apps on Windows without precompiled libs. The
> first time I did it I just added the obvious cpp files from the thrift cpp
> lib to my project, built, read through the linker errors, grepped around,
> added some more cpp files, and so on. It is pretty easy to pull together
> the necessary cpp source for a client, a bit more work for a server but
> certainly doable. You learn a lot in the process too. Once you have the
> boilerplate list of files you generally depend on it is pretty routine.
> Makes debugging easy too, no need to configure debug and release libs,
> never any problems with the IDE figuring out where the source is when you
> want to step into code, etc. I also found building some dependencies on
> windows rough, in particular libevent. It was much easier to just compile
> the bits of lib event I needed without trying to make the entire thing
> work.
>
> At the end of the day I use static libs most of the time but just want to
> let you know that compiling the Thrift sources into your executable
> directly is no big hardship on any platform.
>
> Best,
> Randy
>
> On Tue, Jun 23, 2015 at 11:04 AM, Chris Seto <ch...@gmail.com> wrote:
>
>> Hi all,
>>
>> I am a beginner to the Thrift framework, and I'm looking into using Thrift
>> on a project which is half embedded (actually C++ on embedded Linux) and
>> half C#. Obviously the C# side is standard affair, so I'm not worried about
>> it at all.
>>
>> On the embedded side, I am running a little embedded Linux computer
>> running Angstrom Linux. While I can build either natively or on a desktop
>> Linux target, I actually have been cross compiling my application on my
>> Windows machine With the GCC-Linaro toolchain.
>>
>> Obviously, I can run the thrift compiler on my Windows machine, so
>> generating the subs isn't a big deal.
>>
>> I'm more wondering how to include the Thrift libraries in the project. I
>> do have an Ubuntu Linux machine which has Thrift "installed", but what
>> exactly is the Thrift installation doing, and what is the best way to
>> include Thrift into my existing C++ project? Is there a clean way that I
>> could compile Thrift libs on my Ubuntu machine, then link against them on
>> my Windows build environment? Similarly, would it be possible for me to
>> simply include the libs as source files in my existing C++ project?
>>
>> Thanks
>> --
>>


Re: Advice for a possibly unique Thrift build environment?

Posted by Randy Abernethy <ra...@apache.org>.
Hi Chris,

I often build Thrift C++ apps on Windows without precompiled libs. The
first time I did it I just added the obvious cpp files from the thrift cpp
lib to my project, built, read through the linker errors, grepped around,
added some more cpp files, and so on. It is pretty easy to pull together
the necessary cpp source for a client, a bit more work for a server but
certainly doable. You learn a lot in the process too. Once you have the
boilerplate list of files you generally depend on it is pretty routine.
Makes debugging easy too, no need to configure debug and release libs,
never any problems with the IDE figuring out where the source is when you
want to step into code, etc. I also found building some dependencies on
windows rough, in particular libevent. It was much easier to just compile
the bits of lib event I needed without trying to make the entire thing
work.

At the end of the day I use static libs most of the time but just want to
let you know that compiling the Thrift sources into your executable
directly is no big hardship on any platform.

Best,
Randy

On Tue, Jun 23, 2015 at 11:04 AM, Chris Seto <ch...@gmail.com> wrote:

> Hi all,
>
> I am a beginner to the Thrift framework, and I'm looking into using Thrift
> on a project which is half embedded (actually C++ on embedded Linux) and
> half C#. Obviously the C# side is standard affair, so I'm not worried about
> it at all.
>
> On the embedded side, I am running a little embedded Linux computer
> running Angstrom Linux. While I can build either natively or on a desktop
> Linux target, I actually have been cross compiling my application on my
> Windows machine With the GCC-Linaro toolchain.
>
> Obviously, I can run the thrift compiler on my Windows machine, so
> generating the subs isn't a big deal.
>
> I'm more wondering how to include the Thrift libraries in the project. I
> do have an Ubuntu Linux machine which has Thrift "installed", but what
> exactly is the Thrift installation doing, and what is the best way to
> include Thrift into my existing C++ project? Is there a clean way that I
> could compile Thrift libs on my Ubuntu machine, then link against them on
> my Windows build environment? Similarly, would it be possible for me to
> simply include the libs as source files in my existing C++ project?
>
> Thanks
> --
>