komunikacja php < = > cpp za pomocą phpCpp
Ostatnio zmodyfikowano 2014-05-09 12:35
roserek Temat założony przez niniejszego użytkownika |
komunikacja php < = > cpp za pomocą phpCpp » 2014-05-07 17:18:39 Witam. Pracuję obecnie nad komunikacją między php a cpp, używam do tego biblioteki phpCpp. Natknąłem się jednak na jeden problem. Do programu w Cpp dodałem kolejkowanie za pomocą RabbitMq który używa AMQP. No i tutaj zaczęły się schodki. try { AMQP amqp; AMQPExchange * ex = amqp.createExchange( "e" ); ex->Declare( "e", "fanout" ); AMQPQueue * qu2 = amqp.createQueue( "q2" ); qu2->Declare(); qu2->Bind( "e", "" ); ex->setHeader( "Delivery-mode", 2 ); ex->setHeader( "Content-type", "text/text" ); ex->setHeader( "Content-encoding", "UTF-8" ); ex->Publish( order.str(), "" ); result[ 0 ] = true; result[ 1 ] = "Zdjecie dodane do kolejki."; return result; } catch( AMQPException e ) { result[ 0 ] = false; result[ 1 ] = e.getMessage(); return result; }
Po dopisaniu powyższego kodu dostaję takie info od php: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/face.so' - /usr/lib/php5/20100525/face.so: undefined symbol: _ZN13AMQPException10getMessageEv in Unknown on line 0 |
|
Adik80 |
» 2014-05-07 18:20:49 linkujesz z -lrabbitmq ? librabbitmq.so jest w /usr/lib lub odpowiednio ustawiles LD_LIBRARY_PATH? |
|
roserek Temat założony przez niniejszego użytkownika |
» 2014-05-07 20:39:39 Dzieki za odp. Oczywiście linkuję z -lrabbitmq , inaczej chyba by mi sie nie skompilowało. Co do drugiego pytania to wygląda u mnie tak: vagrant@packer-virtualbox:~$ sudo find / -name librabbitmq.so /usr/local/lib/x86_64-linux-gnu/librabbitmq.so vagrant@packer-virtualbox:~$ echo $LD_LIBRARY_PATH
vagrant@packer-virtualbox:~$
|
|
Adik80 |
» 2014-05-08 12:19:00 Moze sporbuj ustawic LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/x86_64-linux-gnu/
Co wyswietla: ldd /usr/lib/php5/20100525/face.so ? |
|
roserek Temat założony przez niniejszego użytkownika |
» 2014-05-08 21:05:58 Nie wklejam wszystkiego bo sporo tego ;) Jest jedna linijka powiązana z biblioteką rabbita:
librabbitmq.so.1 => /usr/lib/librabbitmq.so.1 (0x00007ff09bf01000) |
|
Adik80 |
» 2014-05-08 21:48:30 Czyli szuka w /usr/lib a jest /usr/local/x86_64-linux-gnu ?
Moze sprobuj: sudo ln -s /usr/local/lib/x86_64-linux-gnu/librabbitmq.so.1 /usr/lib/librabbitmq.so.1 |
|
roserek Temat założony przez niniejszego użytkownika |
» 2014-05-09 09:56:34 Nie no w usr/local/lib/x86... jest plik librabbitmq.so natomiast w usr/lib/ jest librabbitmq.so.1
Przeniosłem też ten plik librabbitmq.so do usr/lib ale nie pomogło :(. Dalej jest sam problem ... Zastanawiam się tylko czy to chodzi w ogóle o tą bibliotekę czy może o libamqpcpp.a ? Z tym że ten plik ja wygenerowałem i jest on używany podczas kompilacji. |
|
Adik80 |
» 2014-05-09 12:35:55 Najprosciej sprawdzic gdzie jest ten symbol: "nm libXXX |grep AMPQException" Jesli to jest rabbitmq to nie znajduje biblioteki jesli ampqcpp to moze gdzies jest nie zlinkowane. Mozesz wkleic fragment Makefile z linkowaniem? |
|
« 1 » |