2011-01-09 92 views
1

我需要在C++和java之間傳輸數據。我決定使用Google的protobuf。Google protobuf和symbian

我做了安裝過程中,我得到了: 斌> protoc.exe LIB> libprotobuf.a libprotobuf.la libprotobuf-lite.a libprotobuf-lite.la libprotoc.a libprotoc.la 和包括文件夾

我已經鏈接庫在.pro文件

QT  += core gui network webkit 

TARGET = MWOP 
TEMPLATE = app 

LIBS += -LC:\msys\1.0\local\lib\ -lprotobuf 
INCLUDEPATH += C:\msys\1.0\local\include 

SOURCES += 
... 

HEADERS += 
... 

FORMS += 
... 

CONFIG += mobility 

MOBILITY += bearer systeminfo 

symbian { 

    TARGET.UID3 = xxxxx 
    TARGET.CAPABILITY += ReadUserData NetworkServices 
    TARGET.EPOCSTACKSIZE = 0x14000 
    TARGET.EPOCHEAPSIZE = 0x020000 0x800000 

} 

RESOURCES += Resources/Registration.qrc 

在模擬器一切似乎正常工作和項目的基礎,但是當我想部署在手機上的應用程序我有編譯錯誤: ::錯誤:沒有規則,使目標\NokiaQtSDK\Symbian\SDK\epoc32\release\armv5\LIB\protobuf.dso,需要\NokiaQtSDK\Symbian\SDK\epoc32\release\gcce\urel\MWOP.exe。停止。

我該如何解決這個問題?

+0

你的protobuf.dso在哪裏?看起來你沒有建立它。檢查錯誤中提到的路徑:是那裏的dso文件? – Haspemulator 2011-01-10 11:26:27

+0

編譯庫後我沒有任何.dso或.lib文件,我只有.a和.la文件。有什麼辦法可以編譯這個庫並獲取.dsp .lib文件? – Tomus 2011-01-10 14:59:26

回答

1

您需要的DSO文件是ARM編譯的protobuf庫。我期望你列出的庫(libprotobuf.a等)是windows/x86二進制文件,因此不適用於在目標上運行。您需要:

  • 的protobuf的源代碼弄個並建立它自己的ARM
  • 找到一個protobuf的庫
0

另一種方法是使用Nokia APIbridge預編譯的ARM二進制文件,它可以達到同樣的效果