Re: Can't use embeded sapi
| From: | Scott MacVicar | Date: | Sun, 09 Aug 2009 21:04:05 +0000 |
| Subject: | Re: Can't use embeded sapi | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-45253@lists.php.net to get a copy of this message | ||
On 9 Aug 2009, at 22:52, Farley Knight wrote:
On Mon, Jul 13, 2009 at 7:17 PM, Paul Biggar<paul.biggar@gmail.com> wrote:This fixed in SVN already, the visibility for the two functions stopped them being exposed in the library. ScottHi Thomas, On Mon, Jul 13, 2009 at 9:15 PM, Thomas Koch<thomas@koch.ro> wrote:I don't think Thomas is completely off here.. For most of the morning I've been trying to compile 5.3.0: make clean; ./configure --enable-embed=shared; make && sudo make install But when I went to build #include <sapi/embed/php_embed.h> int main(int argc, char *argv[]) { PHP_EMBED_START_BLOCK(argc, argv); PHP_EMBED_END_BLOCK(); return 0; } using gcc -o embed_test embed_test.c -I/usr/local/include/php/ -I/usr/local/include/php/main -I/usr/local/include/php/Zend -I/usr/local/include/php/TSRM -L/usr/local/lib -lphp5 I kept getting /tmp/cc9OgNuw.o: In function `main': embed_test.c:(.text+0x21): undefined reference to `php_embed_init' embed_test.c:(.text+0x65): undefined reference to `php_embed_shutdown' However, when I run config and make for 5.2.10, the test file compiles just fine. Something must have changed between the two versions... Not sure what, though.. Probably will dig deeper into this..gcc -c -I/usr/local/include/php/ -I/usr/local/include/php/main - I/usr/local/include/php/Zend -I/usr/local/include/php/TSRM -Wall -g -o worker.o worker.c gcc -L/usr/local/lib -lphp5 -o worker worker.o worker.o: In function `main': /var/checkouts/gearman-php-worker/worker.c:5: undefined reference to `php_embed_init' /var/checkouts/gearman-php-worker/worker.c:6: undefined reference to `php_embed_shutdown' collect2: ld returned 1 exit status make: *** [all] Error 1This worked for me, with your commands and program. Since its a linker error, it seems likely that you haven't installed libphp5.so properly. You didn't indicate that you ran make install, did you? If so, you may want to verify that there is a libphp5.so in /usr/local/lib, and that it is a shared library.