2009-07-07 11 views
11

Tôi hiện đang viết lại một Tiện ích mở rộng PHP ban đầu được viết cho PHP 4.2.2. Vấn đề của tôi là quy trình xây dựng/biên dịch tạo ra một .dll thay vì biên dịch tiện ích mở rộng thành lõi PHP. Môi trường là cửa sổ máy chủ 2003. Tôi đang sử dụng Visual Studio 2008.Làm cách nào để biên dịch tiện ích mở rộng cho PHP 5.3 cho các cửa sổ dưới dạng tệp DLL?

Tôi đã sử dụng tập lệnh EXT_SKEL để tạo khung công tác và tôi có thể biên dịch thành công phần mở rộng vào lõi php. Thay vào đó, tôi đang cố gắng biên dịch nó dưới dạng .dll để tôi có thể dễ dàng phân phối nó cho khách hàng của mình. Bất cứ ai có thể chỉ cho tôi đi đúng hướng để làm thế nào để nói cho các quá trình xây dựng PHP 5.3 mà tôi muốn biên dịch phần mở rộng của tôi như là một .dll thay vì tĩnh vào PHP chính nó?

Để xây dựng khuôn khổ của tiện ích tôi chạy:

  1. php.exeext_skel_win32.php --extname=myextension --proto=myprototypefile.dat
  2. config.w32 Modified để bỏ ghi chú dòng 'ARG_ENABLE' và làm mặc định kích hoạt
  3. buildconf.bat
  4. cscript /nologo configure.js
  5. nmake

Tôi xác nhận rằng tôi có thể chạy các phương thức của tiện ích mở rộng từ bên trong PHP, tuy nhiên nó không tạo ra tệp .dll phân phối. thay vào đó, nó biên dịch các phương thức thành nhị phân PHP. ai đó có thể chỉ cho tôi phương hướng đúng không?

Trả lời

8

Hãy thử

configure.js --enable-myextension=shared 

chỉnh sửa: cũng có thể

configure.js --with-myextension=shared 
+0

Cảm ơn bạn rất nhiều cho các phản ứng nhanh chóng! –