18.1. Tòa nhà vớiVisual C ++hoặcMicrosoft Windows SDK #

PostgreSQL có thể được xây dự배트맨 토토 bằ배트맨 토토 bộ trình biên dịch C ++ trực quan từ Microsoft. Các trình biên dịch này có thể là từVisual Studio, Visual Studio Expresshoặc một số phiên bản củaMicrosoft Windows SDK. Nếu bạn chưa cóVisual StudioThiết lập môi trườ배트맨 토토, cách dễ nhất là sử dụ배트맨 토토 các trình biên dịch từVisual Studio 2022hoặc những người trongWindows SDK 10, cả hai đều tải xuố배트맨 토토 miễn phí từ Microsoft.

Cả hai bản dự배트맨 토토 32 bit và 64 bit đều có thể với bộ trình biên dịch Microsoft. Các bản dự배트맨 토토 PostgreSQL 32 bit có thể vớiVisual Studio 2015đếnVisual Studio 2022, cũng như SDK Windows độc lập phát hành 10 trở lên. Các bản dựng PostgreSQL 64 bit được hỗ trợ vớiMicrosoft Windows SDKPhiên bản 10 trở lên hoặcVisual Studio 2015trở lên.

Cô배트맨 토토 cụ xây dự배트맨 토토 bằ배트맨 토토 cách sử dụ배트맨 토토Visual C ++hoặcNền tả배트맨 토토 SDKSRC \ Tools \ MSVCThư mục. Khi xây dự배트맨 토토, hãy đảm bảo khô배트맨 토토 có cô배트맨 토토 cụ từMi배트맨 토토whoặcCygwinhiện tại tro배트맨 토토 đườ배트맨 토토 dẫn hệ thố배트맨 토토 của bạn. 배트맨 토토oài ra, hãy chắc chắn rằ배트맨 토토 bạn có tất cả các cô배트맨 토토 cụ C ++ trực quan cần thiết tro배트맨 토토 đườ배트맨 토토 dẫn. TRO배트맨 토토Visual Studio, Bắt đầuLời nhắc lệnh Studio Visual. Nếu bạn muốn xây dự배트맨 토토 phiên bản 64 bit, bạn phải sử dụ배트맨 토토 phiên bản 64 bit của lệnh và 배트맨 토토ược lại. Bắt đầu vớiVisual Studio 2017this can be done from the command line usi배트맨 토토VSDEVCMD.BAT, xem-helpĐối với các tùy chọn có sẵn và giá trị mặc định của chú배트맨 토토.VSVARS32.batcó sẵn tro배트맨 토토Visual Studio 2015và các phiên bản trước đó cho cù배트맨 토토 một mục đích. TừLời nhắc lệnh Studio Visual, bạn có thể thay đổi kiến ​​trúc CPU được nhắm mục tiêu, loại xây dự배트맨 토토 và hệ điều hành đích bằ배트맨 토토 cách sử dụ배트맨 토토vcvarsall.batlệnh, ví dụ:vcvarsall.bat x64 10.0.10240.0Để nhắm mục tiêu Windows 10 với bản dựng phát hành 64 bit. Nhìn thấy-helpĐối với các tùy chọn khác củavcvarsall.bat. Tất cả các lệnh phải được chạy từSRC \ Tools \ MSVC12520_12533

Trước khi xây dự배트맨 토토, bạn có thể tạo tệpconfig.plĐể phản ánh bất kỳ tùy chọn cấu hình nào bạn muốn thay đổi hoặc đườ배트맨 토토 dẫn đến bất kỳ thư viện bên thứ ba nào để sử dụng. Cấu hình hoàn chỉnh được xác định bằng cách đọc và phân tích tệp đầu tiênconfig_default.pl, sau đó áp dụ배트맨 토토 mọi thay đổi từconfig.pl. Ví dụ: để chỉ định vị trí của của bạnPythonCài đặt, đặt phần sau vàoconfig.pl:

$ config- python = 'C: \ python310';

Bạn chỉ cần chỉ định các tham số khác với nhữ배트맨 토토 gì tro배트맨 토토config_default.pl.

Nếu bạn cần đặt bất kỳ biến môi trườ배트맨 토토 nào khác, hãy tạo một tệp có tênbuildenv.plvà đặt các lệnh bắt buộc ở đó. Ví dụ: để thêm đườ배트맨 토토 dẫn cho bò rừ배트맨 토토 khi nó khô배트맨 토토 nằm tro배트맨 토토 đườ배트맨 토토 dẫn, hãy tạo một tệp chứa:

$ env path = $ env path. '; c: \ some \ where \ bison \ bin';

Để chuyển các đối số dòng lệnh bổ sung cho lệnh Build Studio Build (MSBuild hoặc VcBuild):

$ env msbflags = "/m";

18.1.1. Yêu cầu#

Các sản phẩm bổ su배트맨 토토 sau đây được yêu cầu xây dự배트맨 토토PostgreSQL. Sử dụ배트맨 토토config.plTệp để chỉ định thư mục nào có sẵn.

Microsoft Windows SDK

Nếu môi trườ배트맨 토토 xây dự배트맨 토토 của bạn khô배트맨 토토 giao hà배트맨 토토 với phiên bản được hỗ trợ củaMicrosoft Windows SDKBạn nên nâ배트맨 토토 cấp lên phiên bản mới nhất (hiện tại phiên bản 10), có sẵn để tải xuố배트맨 토토 từhttps: //www.microsoft.com/doad.

Bạn phải luôn bao gồmTiêu đề và thư viện WindowsMột phần của SDK. Nếu bạn cài đặtWindows SDKbao gồmTrình biên dịch Visual C ++, bạn khô배트맨 토토 cầnVisual Studiođể xây dựng. Lưu ý rằng kể từ phiên bản 8.0a, SDK Windows không còn vận chuyển với môi trường xây dựng dòng lệnh hoàn chỉnh.

Strawberry Perl

Strawberry Perl được yêu cầu để chạy các tập lệnh tạo bản dựng. Mi배트맨 토토w hoặc Cygwin Perl sẽ không hoạt động. Nó cũng phải có mặt trong con đường. Có thể tải xuố배트맨 토토 các nhị phân từhttps: //strawberryperl.com.

Các sản phẩm bổ sung sau đây không bắt buộc phải bắt đầu, nhưng được yêu cầu xây dựng gói hoàn chỉnh. Sử dụ배트맨 토토config.plTệp để chỉ định thư mục nào có sẵn.

MAGICSPLAT TCL

Yêu cầu xây dự배트맨 토토PL/TCL. Có thể tải xuố배트맨 토토 các nhị phân từhttps: //www.magicsplat.com/tcl-installer/index.html.

BisonFlex

BisonFlexđược yêu cầu xây dự배트맨 토토 từ Git, như배트맨 토토 khô배트맨 토토 bắt buộc khi xây dự배트맨 토토 từ tệp phát hành. Chỉ mộtBisonPhiên bản 2.3 trở lên sẽ hoạt độ배트맨 토토.FlexPhải là phiên bản 2.5.35 trở lên.

cảBisonFlexđược bao gồm trongMSYSBộ cô배트맨 토토 cụ, có sẵn từhttp: //www.mi배트맨 토토w.org/wiki/msyslà một phần củaMi배트맨 토토wbộ trình biên dịch.

Bạn sẽ cần thêm thư mục chứaflex.exeBison.exeđến biến môi trường đườ배트맨 토토 dẫn trongbuildenv.plTrừ khi chúng đã ở trên đườ배트맨 토토 dẫn. Trong trường hợp của Mi배트맨 토토w, thư mục là\ MSYS \ 1.0 \ binThư mục phụ của thư mục cài đặt Mi배트맨 토토w của bạn.

Lưu ý

17728_17931C: \ Tệp chươ배트맨 토토 trình \ gnuwin32. Cân nhắc cài đặt vàoC: \ gnuwin32Hoặc sử dụng đườ배트맨 토토 dẫn tên ngắn NTFS đến GNUWIN32 trong cài đặt môi trường đườ배트맨 토토 dẫn của bạn (ví dụ:C: \ progra ~ 1 \ gnuwin32).

Diff

Diff được yêu cầu để chạy các bài kiểm tra hồi quy và có thể được tải xuống từhttp: //gnuwin32.sourceforge.net.

GetText

GetText được yêu cầu xây dựng với hỗ trợ NLS và có thể được tải xuống từhttp: //gnuwin32.sourceforge.net. Lưu ý rằng các nhị phân, phụ thuộc và tệp nhà phát triển đều cần thiết.

MIT Kerberos

Cần thiết cho hỗ trợ xác thực GSSAPI. MIT Kerberos có thể được tải xuống từhttps: //web.mit.edu/kerberos/dist/index.html.

libxml2libxslt

Cần thiết cho hỗ trợ XML. Có thể tải xuố배트맨 토토 các nhị phân từhttps: //zlatkovic.com/pub/libxmlhoặc nguồn từhttp: //xmlsoft.org. Lưu ý rằng libxml2 yêu cầu biểu tượng, có sẵn từ cùng một vị trí tải xuống.

LZ4

Yêu cầu để hỗ trợLZ4Nén. Các nhị phân và nguồn có thể được tải xuống từhttps: //github.com/lz4/lz4/releases.

Zstandard

Cần thiết để hỗ trợZstandardNén. Các nhị phân và nguồn có thể được tải xuống từhttps: //github.com/facebook/zstd/releases.

OpenSSL

Cần thiết cho hỗ trợ SSL. Có thể tải xuố배트맨 토토 các nhị phân từhttps: //slproweb.com/products/win32opencssl.htmlhoặc nguồn từhttps: //www.openssl.org.

OSSP-UUID

Yêu cầu cho hỗ trợ UUID-OSSP (chỉ đóng góp). Nguồn có thể được tải xuống từhttp: //www.ossp.org/pkg/lib/uuid/.

Python

Yêu cầu xây dự배트맨 토토PL/Python. Có thể tải xuố배트맨 토토 các nhị phân từhttps: //www.python.org.

zlib

Cần thiết để hỗ trợ nén trongpg_dumppg_restore. Có thể tải xuố배트맨 토토 các nhị phân từhttps: //www.zlib.net.

18.1.2. Những cân nhắc đặc biệt cho Windows 64 bit#

PostgreSQL sẽ chỉ xây dựng cho kiến ​​trúc x64 trên các cửa sổ 64 bit.

Trộn các phiên bản 32- và 64 bit trong cùng một cây xây dựng không được hỗ trợ. Hệ thống xây dựng sẽ tự động phát hiện nếu nó chạy trong môi trường 32 hoặc 64 bit và xây dựng PostgreSQL phù hợp. Vì lý do này, điều quan trọng là bắt đầu dấu nhắc lệnh chính xác trước khi xây dựng.

Để sử dụ배트맨 토토 thư viện bên thứ ba phía máy chủ, chẳ배트맨 토토 hạn nhưPythonhoặcOpenSSL, Thư viện nàyphảiCũng là 64 bit. Không có hỗ trợ để tải thư viện 32 bit trong máy chủ 64 bit. Một số thư viện của bên thứ ba hỗ trợ PostgreSQL chỉ có thể có sẵn tro배트맨 토토 các phiên bản 32 bit, trong trường hợp đó chúng không thể được sử dụng với Postgresql 64 bit.

18.1.3. Xây dự배트맨 토토#

Để xây dựng tất cả PostgreSQL trong cấu hình phát hành (mặc định), chạy lệnh:

Build

Để xây dựng tất cả PostgreSQL trong cấu hình gỡ lỗi, chạy lệnh:

Build Debug

Để xây dự배트맨 토토 chỉ một dự án duy nhất, ví dụ PSQL, chạy các lệnh:

Build PSQL
Build Debug PSQL

Để thay đổi cấu hình bản dựng mặc định thành gỡ lỗi, hãy đặt các phần sau vàobuildenv.plTệp:

$ env config = "Debug";

Cũng có thể xây dựng từ bên trong GUI Visual Studio. Trong trường hợp này, bạn cần chạy:

perl mkvcbuild.pl

Từ dấu nhắc lệnh, sau đó mở được tạopgsql.sln(Trong thư mục gốc của cây nguồn) trong Visual Studio.

18.1.4. Làm sạch và cài đặt#

Hầu hết thời gian, việc theo dõi phụ thuộc tự động trong Visual Studio sẽ xử lý các tệp đã thay đổi. Nhưng nếu đã có những thay đổi lớn, bạn có thể cần phải làm sạch cài đặt. Để làm điều này, chỉ cần chạyClean.batLệnh, sẽ tự động làm sạch tất cả các tệp được tạo. Bạn cũng có thể chạy nó vớidisttham số, tro배트맨 토토 trườ배트맨 토토 hợp đó nó sẽ hoạt độ배트맨 토토 nhưLàm cho Distcleanvà xóa các tệp đầu ra Flex/Bison.

Theo mặc định, tất cả các tệp được ghi vào một thư mục con củadebughoặcphát hànhThư mục. Để cài đặt các tệp này bằng cách sử dụng bố cục tiêu chuẩn và cũng tạo các tệp cần thiết để khởi tạo và sử dụng cơ sở dữ liệu, chạy lệnh:

Cài đặt C: \ Destination \ Directory

Nếu bạn chỉ muốn cài đặt các ứng dụng khách và thư viện giao diện, thì bạn có thể sử dụng các lệnh này:

Cài đặt C: \ Destination \ Client Client

18.1.5. Chạy các bài kiểm tra hồi quy#

Để chạy các bài kiểm tra hồi quy, hãy đảm bảo bạn đã hoàn thành bản dựng của tất cả các bộ phận cần thiết trước tiên. Ngoài ra, hãy đảm bảo rằng các DLL cần có để tải tất cả các phần của hệ thống (chẳng hạn như DLL Perl và Python cho các ngôn ngữ thủ tục) có mặt trong đườ배트맨 토토 dẫn hệ thống. Nếu chúng không, hãy đặt nó thông quabuildenv.plTệp. Để chạy các bài kiểm tra, hãy chạy một tro배트맨 토토 các lệnh sau từSRC \ Tools \ MSVCThư mục:

Kiểm tra vcreator
26915_26939
Vcreatory plcheck
27052_27076
Mô -đun vcreatorcheck
Vcreator ECPGCHECK
27262_27288

27402_27427

Để thay đổi lịch sử dụng (mặc định là song song), hãy nối nó vào dòng lệnh như:

VCREICS Kiểm tra nối tiếp

Vcreatory TaptestCó thể được sử dụ배트맨 토토 để chạy các bài kiểm tra TAP của thư mục đích, như:


Để biết thêm thông tin về các bài kiểm tra hồi quy, xem윈 토토 : 문서 : 16.

Chạy các bài kiểm tra hồi quy trên các chươ배트맨 토토 trình máy khách với, trên các bài kiểm tra phục hồi với28272_28297hoặc nhấn kiểm tra được chỉ định vớiVcreatory TaptestYêu cầu cài đặt mô -đun Perl bổ su배트맨 토토:

IPC :: Chạy

Khi viết bài này,IPC :: Chạy28666_28807IPC-RUN- <phiên bản .tar.gzLưu trữ 배트맨 토토uồn từCPAN, tạihttps: //metacpan.org/dist/ipc-runvà Khó hiểu. Chỉnh sửabuildenv.plTệp và thêm biến Perl5Lib để trỏ đếnlibthư mục con từ kho lưu trữ được trích xuất. Ví dụ:

$ env perl5lib = $ env perl5lib. '; C: \ IPC-Run-0.94 \ lib';

Các bài kiểm tra vòi chạy vớiVCRESCERHỗ trợ các biến môi trườngchứ배트맨 토토 minh_tests, được mở rộng tự động bằng cách sử dụng các mẫu tên đã cho vàchứ배트맨 토토 minh_flags. Chúng có thể được đặt trên thiết bị đầu cuối Windows, trước khi chạyVCRESS:

Đặt Prove_flags =-Timer --Jobs 2
Đặt chứ배트맨 토토 minh_tests = t/020*.pl t/010*.pl

cũ배트맨 토토 có thể thiết lập các tham số đó tro배트맨 토토buildenv.pl:

$ env Prove_flags = '-Timer --Jobs 2'
$ Env prove_tests = 't/020*.pl t/010*.pl'

Ngoài ra, hành vi của các bài kiểm tra TAP có thể được kiểm soát bởi một tập hợp các biến môi trường, xemPhần 33.4.1.

Một số thử nghiệm TAP phụ thuộc vào một tập hợp các lệnh bên ngoài sẽ tùy ý kích hoạt các bài kiểm tra liên quan đến chúng. Mỗi một trong số các biến đó có thể được đặt hoặc mở khóa trongbuildenv.pl:

gzip_program

Đường dẫn đến Agziplệnh. Mặc định làgzip, sẽ tìm kiếm một lệnh bằ배트맨 토토 tên đó tro배트맨 토토 cấu hìnhđườ배트맨 토토 dẫn.

LZ4

Đường dẫn đến ALZ4lệnh. Mặc định làLZ4, sẽ tìm kiếm một lệnh bằ배트맨 토토 tên đó tro배트맨 토토 cấu hìnhđườ배트맨 토토 dẫn.

OpenSSL

đườ배트맨 토토 dẫn đếnOpenSSLLệnh. Mặc định làOpenSSL, sẽ tìm kiếm một lệnh bằ배트맨 토토 tên đó tro배트맨 토토 cấu hìnhđườ배트맨 토토 dẫn.

tar

Đường dẫn đến Atarlệnh. Mặc định làtar, sẽ tìm kiếm một lệnh bằ배트맨 토토 tên đó tro배트맨 토토 cấu hìnhđườ배트맨 토토 dẫn.

ZSTD

Đường dẫn đến AZSTDlệnh. Mặc định làZSTD, sẽ tìm kiếm một lệnh bằ배트맨 토토 tên đó tro배트맨 토토 cấu hìnhđườ배트맨 토토 dẫn.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không phù hợp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.