2016-09-07 5 views
1

Может кто-нибудь объяснить мне, почему не я получаю ошибку компиляцииОтсутствует тип под названием «VarDictionary» в «рр» пространство имен с помощью PNaCl

error: no type named 'VarDictionary' in namespace 'pp' 
     pp::VarDictionary dictionary; 
     ~~~~^ 

Я обвязки, чтобы установить словарь в функции

virtual void HandleMessage(const pp::Var& message) { 
} 

Я скопировал пример из нижней части этой страницы Google https://developer.chrome.com/native-client/devguide/coding/message-system

и пытался что-то простое, как это

virtual void HandleMessage(const pp::Var& message) { 
    pp::VarDictionary dictionary; 
    pp::VarArray an_array; 
    an_array.Set(0, pp::Var("string0")); 
    an_array.Set(1, pp::Var("string1")); 
    dictionary.Set(pp::Var("param_array"), an_array); 
    PostMessage(dictionary);  
} 

, но когда я компиляции кода я получаю сообщение об ошибке для pp::VarDictionary dictionary; однако никаких проблем с pp::VarArray an_array;

Я использую этот make-файл из Google

# Copyright (c) 2013 The Native Client Authors. All rights reserved. 
# Use of this source code is governed by a BSD-style license that can be 
# found in the LICENSE file. 

# 
# GNU Make based build file.  For details on GNU Make see: 
# http://www.gnu.org/software/make/manual/make.html 
# 

# 
# Get pepper directory for toolchain and includes. 
# 
# If NACL_SDK_ROOT is not set, then assume it can be found three directories up. 
# 
THIS_MAKEFILE := $(abspath $(lastword $(MAKEFILE_LIST))) 
NACL_SDK_ROOT ?= $(abspath $(dir $(THIS_MAKEFILE))../..) 

# Project Build flags 
WARNINGS := -Wno-long-long -Wall -Wswitch-enum -pedantic -Werror 
CXXFLAGS := -pthread -std=gnu++98 $(WARNINGS) 

# 
# Compute tool paths 
# 
GETOS := python $(NACL_SDK_ROOT)/tools/getos.py 
OSHELPERS = python $(NACL_SDK_ROOT)/tools/oshelpers.py 
OSNAME := $(shell $(GETOS)) 
RM := $(OSHELPERS) rm 

PNACL_TC_PATH := $(abspath $(NACL_SDK_ROOT)/toolchain/$(OSNAME)_pnacl) 
PNACL_CXX := $(PNACL_TC_PATH)/bin/pnacl-clang++ 
PNACL_FINALIZE := $(PNACL_TC_PATH)/bin/pnacl-finalize 
CXXFLAGS := -I$(NACL_SDK_ROOT)/include 
LDFLAGS := -L$(NACL_SDK_ROOT)/lib/pnacl/Release -lppapi_cpp -lppapi -ljsoncpp 

# 
# Disable DOS PATH warning when using Cygwin based tools Windows 
# 
CYGWIN ?= nodosfilewarning 
export CYGWIN 


# Declare the ALL target first, to make the 'all' target the default build 
all: job1.pexe 

clean: 
    $(RM) job1.pexe job1.bc 

job1.bc: job1.cc 
    $(PNACL_CXX) -o [email protected] $< -O2 $(CXXFLAGS) $(LDFLAGS) 

job1.pexe: job1.bc 
    $(PNACL_FINALIZE) -o [email protected] $< 


# 
# Makefile target to run the SDK's simple HTTP server and serve this example. 
# 
HTTPD_PY := python $(NACL_SDK_ROOT)/tools/httpd.py 

.PHONY: serve 
serve: all 
    $(HTTPD_PY) -C $(CURDIR) 
+0

Вам нужен файл заголовка, который определяет класс vardictionary, который var_dictionary.h и называется с #include var_dictionary.h по https://developer.chrome. com/native-client/pepper_dev/cpp/classpp_1_1_var_dictionary – xec86

+0

@ xec86 Вы знаете, где я могу его получить? – TalG

+0

@ xec86 нашел его '#include" ppapi/cpp/var_dictionary.h "'. Спасибо за совет!!! – TalG

ответ

1

Вам нужно добавить заголовок файл для var_dictionary.h, где объявляется класс, к которому вы пытаетесь получить доступ.

Исходный код для этого заголовка доступен here

+0

, насколько вы хороши с PNaCl/NaCl? – TalG

+0

не знаком с этим. Сожалею. Просто C++-промежуточное звено. – xec86

 Смежные вопросы

  • Нет связанных вопросов^_^