Skip to content

Instantly share code, notes, and snippets.

@ixqbar
Created January 10, 2017 08:49
Show Gist options
  • Save ixqbar/61427ffc0e8dde74fff40f479d147db4 to your computer and use it in GitHub Desktop.
Save ixqbar/61427ffc0e8dde74fff40f479d147db4 to your computer and use it in GitHub Desktop.
php osx embed code

php编译开启embed 测试发现osx只有设置enable-emebed=static才可以

./configure --enable-embed=static
#include <stdlib.h>
#include <stdio.h>
#include "sapi/embed/php_embed.h"
 
int main(int argc, char * argv[]){
    PHP_EMBED_START_BLOCK(argc,argv);
    char * script = " print 'Hello World!\n';";
    zend_eval_string(script, NULL, "Simple Hello World App" TSRMLS_CC);
    PHP_EMBED_END_BLOCK();
    return 0;
}

Makefile

CC = gcc
CFLAGS = -I/Users/xingqiba/data/server/php7.1.0/include/php/ \
                -I/Users/xingqiba/data/server/php7.1.0/include/php/main \
                -I/Users/xingqiba/data/server/php7.1.0/include/php/Zend \
                -I/Users/xingqiba/data/server/php7.1.0/include/php/TSRM \
                -Wall -g
LDFLAGS = -L/Users/xingqiba/data/server/php7.1.0/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib -L/usr/local/opt/openssl/lib -L/usr/local/lib -L/usr/local/Cellar/curl/7.51.0/lib -L/usr/local/opt/curl/lib -L/usr/local/opt/freetype/lib -lphp7 -lm /usr/local/lib/libiconv.dylib -lz -lxml2 -lssl -lcurl -lpng -lcrypto -licucore -lfreetype -lmcrypt -ljpeg -lresolv
ALL:
	$(CC) -o test test.c $(CFLAGS) $(LDFLAGS)

@ixqbar
Copy link
Author

ixqbar commented Jan 10, 2017

@ixqbar
Copy link
Author

ixqbar commented Oct 12, 2017

http://www.zendapi.org 了解到
使用 --enable-embed=dylib 也可以

@ixqbar
Copy link
Author

ixqbar commented Feb 11, 2018

package main
// #cgo CFLAGS: -I /Users/xingqiba/data/server/php7.1.0/include/php/ -I /Users/xingqiba/data/server/php7.1.0/include/php/main -I /Users/xingqiba/data/server/php7.1.0/include/php/Zend -I /Users/xingqiba/data/server/php7.1.0/include/php/TSRM -Wall -g
// #cgo LDFLAGS: -L /Users/xingqiba/data/server/php7.1.0/lib -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/lib -L /usr/local/opt/openssl/lib -L /usr/local/lib -L /usr/local/Cellar/curl/7.57.0/lib -L /usr/local/opt/curl/lib -L /usr/local/opt/freetype/lib /usr/local/lib/libiconv.dylib -lz -lxml2 -lssl -lcurl -lpng -lcrypto -licucore -lfreetype -lmcrypt -ljpeg -lresolv -lphp7 -lreadline
// #include "sapi/embed/php_embed.h"
/*
int print() {
    PHP_EMBED_START_BLOCK(0,NULL);
    char * script = "echo 123;";
    zend_eval_string(script,NULL,"Simple Hello World App" TSRMLS_CC);
    PHP_EMBED_END_BLOCK();
    return 1;
}
*/
import "C"

func main() {
	C.print()
}

@ixqbar
Copy link
Author

ixqbar commented Feb 11, 2018

php-config --includes
php-config --ldflags
php-config --libs

@ixqbar
Copy link
Author

ixqbar commented Mar 19, 2018

/usr/lib/system/libsystem_darwin.dylib not found

https://qiita.com/piroz/items/200f66656fcb123ea409

@ixqbar
Copy link
Author

ixqbar commented Mar 23, 2018

macos

--enable-embed=dylib 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment