QT 5.7 - 找不到google / protobuf文件 - 包含路径错误

时间:2016-07-13 16:37:19

标签: c++ qt protocol-buffers

我试图在QT 5.7(clang 7.0)中使用谷歌protobuf 2.6和OSX上的QT创建者4.0.3而没有太多运气。

.pro文件有

LIBS += `pkg-config --cflags -- libs protobuf`

包括protobuf库。

在我使用我的proto文件生成的头文件中包含行

#include <google/protobuf/stubs/common.h>

这会产生编译错误

error: 'google/protobuf/stubs/common.h' file not found

QT使用pro文件中的LIBS + =命令找到protobuf包,我在

中有未解决的头文件
/Users/<username>/Qt/5.7/Src/qtwebengine/src/3rdparty/chromium/third_party/protobuf/src/google/protobuf/stubs

/usr/local/include/google/protobuf/stubs/common.h

我使用macports安装了protobuf。

头文件自动填充,所以QT知道它在哪里,所以我不知道如何处理找不到文件的错误。

任何帮助都非常感激。

谢谢, 一个。

编辑:

我认为问题是/ usr / local /没有被包含在qt路径中,因此我可以找到protobuf包而不是任何头文件(即使它自动填充?)。如何使用el capitain在QT中添加PATH?

编辑2: 项目文件

#-------------------------------------------------
#
# Project created by QtCreator 2016-07-13T12:13:47
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testexample
TEMPLATE = app

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

QT_CONFIG -= no-pkg-config

HEADERS  += mainwindow.h \
    ../../../protobuf/message.pb.h

FORMS    += mainwindow.ui

RESOURCES += \
    resources.qrc

LIBS += `pkg-config --cflags -- libs protobuf`

1 个答案:

答案 0 :(得分:1)

在Windows / Linux / Mac中使用Protobuf 2.4和Qt 5.7。使用您正在使用的编译器下载并编译Protobuf 2.4(我在Windows上使用MSVC / MinGW,在Linux上使用gcc,在Mac OS上使用clan)。并编辑您的.pro文件。我的.pro配置使用以下步骤:

加载已编译的库以进行调试/发布模式:

    #For Windows
    win32 {
        CONFIG(debug, release|debug) {
            win32:LIBS += -llibprotobuf-debug
        } else {
            win32:LIBS += -llibprotobuf
        }
    }
    #For linux
    !win32:LIBS += -lprotobuf

包含所有protobuf源代码的路径:

win32:INCLUDEPATH += "..\\...\\directoty_protobuf\\src"

它对我来说很好。