系统:Windows7
开发工具:Qt 4.8.6, mingw 4.2, Qt creator 3.2
目标:需要一个能在windows下mingw能编译通过的protobuf的静态库
困难:protobuf在windows下用mingw编译成功的例子很少,都是在vc下编译的,在Stack Overflow里有人用msys+mingw成功的编译出protobuf的库,我试了一下,但没成功。
解决:
1、下载protobuf的源码(我解压到该目录:D:\protobuf-2.5.0)
2、打开Qt creator并创建一个空的工程;
3、右键鼠标点击项目名,选择Add Existing Directory,如下图,点击“浏览”,进入到你解压protobuf的目录,点击“Start Parsing"。然后在下面选择需要编译成库的文件(下面我会在pro文件中列出),然后点击”OK“;
4、工程的pro文件大致是下面这样的,如果你的protoful路径不一致,对应修改成你的路径即可
TEMPLATE = lib
CONFIG += console static
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_enum.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_enum_field.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_extension.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_field.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_file.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_generator.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_helpers.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_message.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_message_field.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_service.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/cpp/cpp_string_field.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/java/java_doc_comment.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/java/java_doc_comment_unittest.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/java/java_enum.cc \
D:/protobuf-2.5.0/src/google/protobuf/compiler/java/java_enum_field.cc \
D:/protobuf-2.5.0/src/google/prot