Onde encontrar o arquivo .so resultante de uma compilação?

0

Eu apenas compilei o xdebug como instruído no site oficial. Mas onde posso encontrar o arquivo .so resultante?

Encontrei um na pasta ./libs/xdebug.so e um em modules/xdebug.so .

Perguntas

  • Qual deles eu preciso, não há informações no site oficial?
  • Por que não há simplesmente uma pasta chamada result ou semelhante?
por Black 10.07.2018 / 16:12

1 resposta

3

A última parte da compilação, executada por make , informa explicitamente onde a biblioteca está instalada:

----------------------------------------------------------------------
Libraries have been installed in:
   /tmp/user/1000/xdebug/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Portanto, a resposta é que você deseja o .so que é modules (que é idêntico ao de .libs , mas o segundo é um detalhe de implementação libtool ).

make install copia esse .so no diretório de destino, que é o diretório da API do PHP conforme determinado por phpize ( /usr/lib/php/20151012 no sistema em que testei isso). O PHP deve ser capaz de pegá-lo automaticamente.

Então, se você seguir as instruções a montante até o fim, não precisa se preocupar com as resposta: make install faz a coisa certa, disponibilizando o módulo para a sua instalação do PHP.

    
por 10.07.2018 / 16:38