Difference between revisions of "Compiling libprotobuf"

From AlliedModders Wiki
Jump to: navigation, search
(Added -NDEBUG for builds where CXXFLAGS gets overridden.)
Line 26: Line 26:
 
make
 
make
 
</pre>
 
</pre>
 +
 +
For a debug build, replace <tt>./configure</tt> with:
 +
<pre>
 +
./configure CXXFLAGS="-g3 -ggdb3"
 +
</pre>
 +
This will also override protobuf's default CXXFLAGS of <tt>-DNDEBUG</tt>
  
 
The library will be in src/.libs/
 
The library will be in src/.libs/
Line 40: Line 46:
 
make
 
make
 
</pre>
 
</pre>
 +
 +
For a debug build, replace <tt>./configure</tt> with:
 +
<pre>
 +
./configure --build=i686-pc-linux-gnu CFLAGS="-m32" CXXFLAGS="-m32 -g3 -ggdb3" LDFLAGS=-m32
 +
</pre>
 +
This will also override protobuf's default CXXFLAGS of <tt>-DNDEBUG</tt>
  
 
The library will be in src/.libs/
 
The library will be in src/.libs/
Line 54: Line 66:
 
make
 
make
 
</pre>
 
</pre>
 +
 +
For a debug build, replace <tt>./configure</tt> with:
 +
<pre>
 +
./configure --build=x86-apple-darwin ABI=standard CFLAGS="-m32" CXXFLAGS="-m32 -g3 -ggdb3" LDFLAGS=-m32
 +
</pre>
 +
This will also override protobuf's default CXXFLAGS of <tt>-DNDEBUG</tt>
  
 
The library will be in src/.libs/
 
The library will be in src/.libs/

Revision as of 13:09, 11 February 2013

Examples for compiling a 32-bit libprotobuf and other protobuf libraries using the protobuf-2.3.0 source.


Windows

The following was tested on Windows 7 with Visual Studio 2010. Not all projects built after conversion, but only libprotobuf and dependencies were necessary.

  • Download protobuf-2.3.0.zip from https://code.google.com/p/protobuf/downloads/list
  • Extract and navigate to protobuf-2.3.0/vsprojects/
  • Open protobuf.sln in the version of Visual Studio corresponding with the VC abi version that you wish to compile for.
  • Walk through project conversion steps if necessary.
  • Right-click the libprotobuf project and choose properties.
  • In Configuration Properties > C/C++ -> Code Generation, set Runtime Library to /MT for Release or /MTd for Debug.
  • Right-click the libprotobuf project and choose Build.

libprotobuf.lib will be in Release/ or Debug/, depending on build configuration.


Linux (32-bit host)

The following was tested on Debian 6 (Lenny) 32-bit.

wget https://protobuf.googlecode.com/files/protobuf-2.3.0.tar.gz
tar -xvzf protobuf-2.3.0.tar.gz
cd protobuf-2.3.0
./configure
make

For a debug build, replace ./configure with:

./configure CXXFLAGS="-g3 -ggdb3"

This will also override protobuf's default CXXFLAGS of -DNDEBUG

The library will be in src/.libs/


Linux (64-bit host)

This hasn't been tested, but should work on most or all 64-bit distributions.

wget https://protobuf.googlecode.com/files/protobuf-2.3.0.tar.gz
tar -xvzf protobuf-2.3.0.tar.gz
cd protobuf-2.3.0
./configure --build=i686-pc-linux-gnu CFLAGS="-m32 -DNDEBUG" CXXFLAGS="-m32 -DNDEBUG" LDFLAGS=-m32
make

For a debug build, replace ./configure with:

./configure --build=i686-pc-linux-gnu CFLAGS="-m32" CXXFLAGS="-m32 -g3 -ggdb3" LDFLAGS=-m32

This will also override protobuf's default CXXFLAGS of -DNDEBUG

The library will be in src/.libs/


Mac

The following was tested on OS X 10.7 (Lion) and ensures that the outputted binaries are 32-bit.

wget https://protobuf.googlecode.com/files/protobuf-2.3.0.tar.gz
tar -xvzf protobuf-2.3.0.tar.gz
cd protobuf-2.3.0
./configure --build=x86-apple-darwin ABI=standard CFLAGS="-DNDEBUG -m32" CXXFLAGS="-m32 -DNDEBUG" LDFLAGS=-m32
make

For a debug build, replace ./configure with:

./configure --build=x86-apple-darwin ABI=standard CFLAGS="-m32" CXXFLAGS="-m32 -g3 -ggdb3" LDFLAGS=-m32

This will also override protobuf's default CXXFLAGS of -DNDEBUG

The library will be in src/.libs/