7

需要在没有 pthread 的实时操作系统上使用协议缓冲区。我能够以这种方式静态链接 protobuf

g++ -g -Wall example.pb.cc example.cc -o example -static -lprotobuf -lpthread

但是,如果没有 pthread,我会收到链接错误。是否可以将 protobuf 配置为在没有 pthread 的情况下工作?

4

1 回答 1

7

并不真地。看到这个未解决的问题。

有人修补了较旧的 protobuf 版本,使其不依赖于 pthreads,请参见此处- 如果您真的需要它,您可以查看它,并可能转发端口。

另请注意,在使用 protobuf 时,您应该使用 pkg_config 来获取正确的编译器和链接器标志,例如

pkg-config --cflags protobuf         # compiler flags
pkg-config --libs protobuf           # linker flags
于 2013-01-15T12:16:36.427 回答