2010-06-26 74 views
5

一个.proto文件I有4个文件联使用的qmake

message.proto udp.h udp.cpp main.cpp中

message.proto是一个谷歌的协议缓冲文件。我正在尝试编写一个协议缓冲区,并使用UDP发送和接收数据。 udp.h和udp.cpp只是实现UDP的类。

我可以编写自己的makefile,并为这个小例子做必要的事情。后来我需要将这些代码集成到我的QT程序中。我正在使用qmake -project,qmake来生成Makefile。我正在使用Ubuntu 9.10

有人可以告诉我需要在.pro文件中进行的更改或由qmake生成的Makefile以满足依赖关系。

回答

3

通常你只需要到相应的头文件和源文件添加到相应的HEADERSSOURCES变量在.pro文件,即

SOURCES += udp.cpp message.pb.cc 
HEADERS += udp.h message.pb.h 

,我含蓄假定message.pb.cc和消息。 pb.h是由protoc(协议缓冲区编译器)生成的文件。如果您还想让生成的生成文件为您运行protoc,则可以使用system函数(http://doc.trolltech.com/4.6/qmake-function-reference.html#system-command)完成该操作。

我希望有帮助。

+0

当我运行命令qmake -project 时,会自动运行此后,我运行qmake来获取执行makefile的Makefile 我得到大量错误。我猜测protoc库没有包含在内。有人可以告诉我在何处以及如何将protoc库包含在由qmake生成的makefile或pro文件中 – user269037 2010-06-26 22:29:26

+0

您接受了这个答案,但正如您在评论中所述,仍存在链接器问题,您是如何处理这个问题的? – 2011-11-09 06:01:36

+1

那么,LIBS + = -lprotoc – 2011-11-24 05:57:53