RE: [PHP-DEV] ext_skel and win32 project
| From: | Mike Berry-Porter | Date: | Mon, 09 Oct 2000 00:24:02 +0000 |
| Subject: | RE: [PHP-DEV] ext_skel and win32 project | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-34481@lists.php.net to get a copy of this message | ||
Moshe,
Where to begin... I'm assuming you're trying to compile your extension under
Microsoft Visual C++ 6.0 (although older version probably do the same as
what I'm about to tell you). Basically you need to create a project with
various defines, include and library paths added to reflect the Unix based
configuration. I wouldn't suggest you simply add your source to an existing
project, but rather create a new one. It allows you're code to be
transportable to the next version.
I won't go through ALL the ins and outs of the project settings you need but
below is some stuff to take into consideration. I've successfully moved a
Linux created extension over to a WIN32 environment with relative ease. I'll
assume you have a basic idea about the concepts and areas within MSVC. I
basically looked at some of the extensions that came with the PHP 4.0.2
(e.g. OCI8). NOTE: You shouldn't have to change any of your code to get the
core PHP stuff to work.
Under your new projects settings make the following changes (these will be
for a release version, NOT a debug):
C/C++ Tab:
- I suggest under Code Generation make "use run-time library" as
Multithreaded DLL
- Under Preprocessor add the following string to the front of your existing
Preprocessor defines:
ZEND_DEBUG=0,
- Under Preprocessor add the following string to the END of your existing
Preprocessor defines:
ZTS=1,ZEND_WIN32,PHP_WIN32,HAVE_W4H=1,COMPILE_DL_W4H=1
- Under Preprocessor add the following string to your "Additional include
directories":
..\..\,..\..\main,..\..\Zend,..\..\..\bindlib_w32,..\..\TSRM
Link Tab:
- Output file name should be something useful (e.g.
..\..\Release_TS\php_myext.dll )
- Add php4ts.lib to the front of your Object/library modules list
- Under Input, add the following string to your Additional library path:
..\..\Release_TS,..\..\Release_TS_Inline
That should be it. However, if you still need more help feel free to contact
myself or others on this group.
Have fun...
MBP
Mike Berry-Porter
mikebp@alverstone.com.au
-----Original Message-----
From: moshe doron [mailto:mosdoron@netvision.net.il]
Sent: Friday, 6 October 2000 7:52 PM
To: php-dev@lists.php.net
Subject: [PHP-DEV] ext_skel and win32 project
1. i tried building defualt empty extention ( named 'w4h') using the
ext_skal. it works ok on linux but i cant moving it into the win32 project.
i did those steps:
a. adding the w4h.c, php_w4h.h into the 'php4dlls' project.
b. compile it now, the php not recognize the confirm_w4h_compiled():
c. removing the '#if HAVE_W4H' line on 'w4h.c' cause 18 error... for exmple:
D:\php-dev\extdbg2\ext\w4h\w4h.c(38) : error C2065:
'php_if_confirm_w4h_compiled' : undeclared identifier
D:\php-dev\extdbg2\ext\w4h\w4h.c(38) : error C2099: initializer is not a
constant
D:\php-dev\extdbg2\ext\w4h\w4h.c(45) : error C2065: 'php_minit_w4h' :
undeclared identifier
D:\php-dev\extdbg2\ext\w4h\w4h.c(45) : error C2099: initializer is not a
constant
D:\php-dev\extdbg2\ext\w4h\w4h.c(46) : error C2065: 'php_mshutdown_w4h' :
undeclared identifier
D:\php-dev\extdbg2\ext\w4h\w4h.c(46) : error C2099: initializer is not a
constant
D:\php-dev\extdbg2\ext\w4h\w4h.c(47) : error C2065: 'php_rinit_w4h' :
undeclared identifier
D:\php-dev\extdbg2\ext\w4h\w4h.c(47) : error C2099: initializer is not a
constant
D:\php-dev\extdbg2\ext\w4h\w4h.c(48) : error C2065: 'php_rshutdown_w4h' :
undeclared identifier
D:\php-dev\extdbg2\ext\w4h\w4h.c(48) : error C2099: initializer is not a
constant
D:\php-dev\extdbg2\ext\w4h\w4h.c(49) : error C2065: 'php_info_w4h' :
undeclared identifier
....
...
where is my mistake?
thanks
moshe.
mosdoron@netvision.net.il
icq: 1542485
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net
For additional commands, e-mail: php-dev-help@lists.php.net
To contact the list administrators, e-mail: php-list-admin@lists.php.net