Hướng dẫn compile PostgreSQL extension bằng visual studio

0
90

Hướng dẫn cách biên dịch 1 PostgreSQL extension bằng Visual Studio 2017 , OS là Windows 10 (64 bit).

Để lấy ví dụ minh họa cho phần này thì mình sử dụng extension plpgsql_check .

Nói thêm 1 chút về extionsion trên, đây là 1 extension rất hay giúp cho các bạn có thể sớm phát hiện các lỗi của plpgsql tại thời điểm biên dịch source package.

Hãy download source code của extension về rồi unzip , vào thư mục source và mở solution , cần phải upgrade solution lên VS 2017.Trường hợp không import được các file plpgsql_check_builtins.h và plpgsql_check.c thì hãy import bằng tay vào hoặc tạo mới các file và copy nội dung từ source đã download về. Image hoàn chỉnh thì như bên dưới:

Đã chuẩn bị xong , bây giờ tiếp tục thực hiện theo các bước bên dưới :

Bước 1 : Cấu hình project ( Project configuration).

Mở property của project ở trên , Tại item Configuration chọn “All Configurations”:

 

Bước 2 : General settings

Tại Configuration Properties -> General, chỉ định “Configuration Type” thành“Dynamic Library (.dll)”.

Tại C/C++ -> Preprocessor Directives, add the directive “WIN32”.

Tại C/C++ -> Code Generation, setting “Enable C++ Exceptions” thành “No”

Tại “Advanced” setting “Compile As” thành“C Code”.

Tại item Linker -> Manifest File, setting “Generate Manifest” thành “No”

Tại Linker -> Input -> Additional Dependencies, thêm postgres.lib

Bước 3 : Include and library directories

Tại Configuration Properties -> C/C++ -> General. In Additional Include Directories , thêm các folder bên dưới :

Tại “Linker”->”General”, item Additional Library Directories ,thêm lib vào :

Bước 4 : Build solution .

Bước 5 : Cài đặt extension .

Copy file plpgsql_check.dll vừa build ở trên vào thư mục lib của folder cài đặt PostgreSql

Copy plpgsql_check.control và plpgsql_check--0.8.sql vào thư mục PostgreSQL\10\share\extension

Thực thi command bên dưới tại màn hình PostgreSql admin :

CREATE EXTENSION plpgsql_check;

 

1

BÌNH LUẬN

Nhập bình luận của bạn
Vui lòng nhập tên