2016-11-07 64 views
0

正如標題所示,我想在Qt中編譯一個簡單的項目,它使用google protobuf3中生成的addressbook.pb.h/addressbook.pb.cc文件C++用戶教程。這是我的.pro文件包括在Mac上的Qt項目protobuf3頭文件

#------------------------------------------------- 
# 
# 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編譯和運行完全相同的(地址簿。*)文件。

回答

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文件中。