Как мне создать плагин PPAPI для Linux? - PullRequest
1 голос
/ 13 января 2011

Как мне создать плагин PPAPI для Chromium в Linux?

Например, я хочу построить пример заглушки, предоставленный проектом. http://src.chromium.org/viewvc/chrome/trunk/src/ppapi/examples/stub/stub.cc?view=markup

Пока у меня есть следующий Makefile

libexample.so.1.0.1:example.o
    g++ -shared -Wl,-soname,libexample.so.1 -o libexample.so.1.0.1 example.o -lc -lppapi_cpp -lppapi_cpp_objects -L /home/carlos/Desktop/ppapi/example/

example.o:
    g++ -fPIC -Wall -g -c stub.cc -o example.o -I /home/carlos/Desktop/

clean:
    rm example.o libexample.so.1.0.1

run:
    google-chrome -d --register-pepper-plugins="/home/carlos/Desktop/ppapi/examples/stub/libexample.so.1.0.1;application/x-ppapi-example" 

Однако в libexample.so.1.0.1 отсутствуют символы.

nm libexample.so.1.0.1 --demangle -u | grep pp::

Дает мне это:

U pp::Module::Get()
U typeinfo for pp::Module
U typeinfo for pp::Instance

Где эти символы?

1 Ответ

2 голосов
/ 14 января 2011

Я обнаружил, что

make -n

позволяет воспроизвести то, что делает сложный Makefile.Оттуда это было вопросом проб и ошибок.Ниже приведен Makefile, который работает для меня.

libppapi_example.so:stub.o
    g++ -shared  -pthread -Wl,-z,noexecstack -Wl,-soname=libppapi_example.so -o libppapi_example.so -Wl,--start-group stub.o libppapi_cpp.a libppapi_cpp_objects.a -Wl,--end-group 

stub.o:
    g++  '-DNO_HEAPCHECKER' '-DCHROMIUM_BUILD' '-DENABLE_REMOTING=1' '-DENABLE_GPU=1' '-D__STDC_FORMAT_MACROS' '-DDYNAMIC_ANNOTATIONS_ENABLED=1' '-D_DEBUG' -I/home/carlos/Desktop/chromium/src/ -Werror -pthread -fno-exceptions -Wall -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -pipe -fPIC -fno-strict-aliasing -fPIC -fvisibility=hidden -fvisibility=hidden -O0 -g -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -MMD -MF stub.o.d.raw -c -o stub.o stub.cc

clean:
    rm -f stub.o.d.raw stub.o libppapi_example.so

run:
    google-chrome -d --register-pepper-plugins="/home/carlos/Desktop/ppapi/examples/stub/libppapi_example.so;application/x-ppapi-example" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...