-
Notifications
You must be signed in to change notification settings - Fork 3
/
INSTALL
38 lines (30 loc) · 1.9 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Windows users
=============
## Build protobuf from source (Only for RProtoBufLib package maintainers)
#### build it with MSYS2 shipped with rtools4.0
1. Rtools (4.0)
2. open MSYS2 MINGW32 shell launcher(i.e. c:\rtools40\mingw32.exe) so that all the nix tools are available for building script
3. mkdir 32 && cd 32 && ../protobuf_src_folder/configure --prefix=./32/install && make install
4. open MSYS2 MINGW64 shell launcher(i.e. c:\rtools40\mingw64.exe)
5. build 64 bit lib similar to 3)
#### build it with MYSYS1.0 + mingw
1. Rtools (3.x)
2. install MSYS-1.0.11
3. point it to the mingw_32(by mounting mingw_32 to /mingw in fstab file) installed by Rtools
4. open MYSYS terminal (so that all the nix tools are available for building script)
5. mkdir 32 && cd 32 && ../protobuf_src_folder/configure --prefix=./32/install && make install
6. mounting mingw_64 to /mingw in fstab file
7. build 64 bit lib similar to 5)
## cross-compiling protobuf
It is now not working due to the incompatible exception model used by mingw on linux (sjlj)
vs Rtools (dwarf). Unless manually build mingw from src with --disable-sjlj and --enable-dwarf
1. install cross-compiling tool chain on linux
(and With mingw there are two different threading models: posix and win32. need to use posix
e.g. update-alternatives --config x86_64-w64-mingw32-g++)
2. download the source
2. first install protobuf on local linux (so that 'protoc' command is available for cross compiling later on
3. the run configure script for win64:
configure --host=x86_64-w64-mingw32 --prefix=/your_path/protobuf/x64 --enable-shared=no --with-protoc=protoc LDFLAGS='-static-libgcc' CXXFLAGS=-DHAVE_PTHREAD=1
4. then run make and make install
5. for win32: (need manually cp the .a file due to the error of target libprotoc
configure --host=i686-w64-mingw32 --prefix=/your_path/protobuf/i386 --enable-shared=no --with-protoc=protoc LDFLAGS='-static-libgcc' CXXFLAGS=-DHAVE_PTHREAD=1