包括Mac上Qt项目中的protobuf3标头

时间:2016-11-07 16:50:06

标签: macos qt protocol-buffers

正如标题所示,我正在尝试在Qt中编译一个简单的项目,该项目利用了google protobuf3教程中为C ++用户生成的addressbook.pb.h / addressbook.pb.cc文件。这是我的.pro文件

#-------------------------------------------------
#
# Project created by QtCreator 2016-11-07T10:33:12
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = prototest
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    ../protobuf/examples/addressbook.pb.cc

HEADERS  += mainwindow.h \
    ../protobuf/examples/addressbook.pb.h

FORMS    += mainwindow.ui

INCLUDEPATH += /usr/local/Cellar/protobuf/3.1.0/include

LIBS += /usr/local/Cellar/protobuf/3.1.0

不幸的是,这会抛出

:-1: error: can't map file, errno=22 file '/usr/local/Cellar/protobuf/3.1.0' for architecture x86_64

我在这一点上陷入困​​境。任何帮助将不胜感激。我已经能够使用Xcode8编译和运行完全相同的(addressbook。*)文件。

1 个答案:

答案 0 :(得分:0)

解决它:将以下内容添加到.pro文件

macx: LIBS += -L$$PWD/../../../usr/local/Cellar/protobuf/3.1.0/lib/ -lprotobuf.11

INCLUDEPATH += $$PWD/../../../usr/local/Cellar/protobuf/3.1.0/include
DEPENDPATH += $$PWD/../../../usr/local/Cellar/protobuf/3.1.0/include

我应该添加 我到达这个答案的方式。右键单击您的项目并选择“添加库 - >外部库”,选择您的平台并输入您要添加的特定(不是路径),以及您的包含路径(它提供的选项)你表明这样)。 Qt将生成代码并自动将其添加到.pro文件中。