การรีคอมไพล์ด้วย ServBay
ServBay มอบสภาพแวดล้อมสำหรับพัฒนาเว็บแบบครบวงจรที่ทรงพลังสำหรับผู้ใช้ macOS ซึ่งประกอบด้วยแพ็คเกจและเครื่องมือมากมาย นอกเหนือจากซอฟต์แวร์ที่ติดตั้งล่วงหน้ากับ ServBay แล้ว นักพัฒนาบางครั้งอาจต้องการรีคอมไพล์เพื่อตอบโจทย์เฉพาะ เช่น:
- เปิดใช้งานออปชั่นการคอมไพล์พิเศษสำหรับบางแพ็คเกจ
- เพิ่มโมดูลหรือส่วนขยายที่ ServBay ไม่ได้รวมไว้แต่แรก (เช่น PHP extension ใหม่ หรือโมดูล PostgreSQL)
- ใช้ไลบรารีเวอร์ชันเฉพาะที่ต่างจากเวอร์ชันค่าเริ่มต้นของ ServBay ในการคอมไพล์
- ปรับแต่งแก้ไขแพ็คเกจที่ ServBay จัดหาให้
ServBay จึงมีเครื่องมือและสภาพแวดล้อมที่จำเป็นสำหรับการรีคอมไพล์เหล่านี้ ให้คุณดำเนินการได้ง่ายดาย
เพื่อการรีคอมไพล์ที่ราบรื่น คุณควรมีความเข้าใจพื้นฐานเกี่ยวกับกระบวนการคอมไพล์ซอฟต์แวร์ใน Unix/Linux (เช่น configure
, make
, make install
)
ข้อกำหนดเบื้องต้น
ก่อนเริ่มรีคอมไพล์ โปรดตรวจสอบว่าได้เตรียมความพร้อมดังต่อไปนี้:
ติดตั้ง ServBay Development Library: นี่คือหัวใจหลักของการรีคอมไพล์ ประกอบด้วยไฟล์ไลบรารี (
.so
,.a
), header (.h
) และทรัพยากรสำหรับนักพัฒนาอื่นๆ ที่จำเป็นในการคอมไพล์ในสภาพแวดล้อมของ ServBay คุณสามารถติดตั้งได้จากพาเนล แพ็คเกจ บนแอปพลิเคชัน ServBayติดตั้ง Xcode Command Line Tools: เครื่องมือพื้นฐานสำหรับนักพัฒนาบน macOS รวมคอมไพเลอร์ (Clang), ลิงเกอร์ และเครื่องมือสำคัญอื่นๆ เปิด Terminal แล้วติดตั้งด้วยคำสั่ง:
bashxcode-select --install
1หากติดตั้งแล้ว ระบบจะแจ้งให้ทราบ
ติดตั้งเครื่องมือคอมไพล์เสริม: เพื่อคอมไพล์ซอฟต์แวร์โอเพนซอร์สส่วนใหญ่ คุณยังต้องติดตั้ง
autoconf
,automake
,libtool
ฯลฯ สามารถติดตั้งผ่าน Homebrew ได้ดังนี้:bashbrew install autoconf automake libtool cmake
1ถ้ายังไม่มี Homebrew โปรดดูวิธีติดตั้งได้ที่เว็บไซต์ทางการของ Homebrew
ตั้งค่าสภาพแวดล้อมการคอมไพล์
หลังติดตั้ง ServBay Development Library และเครื่องมือที่จำเป็นเรียบร้อยแล้ว คุณต้องตั้งค่า environment variables (เช่น PATH
, CFLAGS
, LDFLAGS
, CPPFLAGS
) ใน Terminal เพื่อให้เครื่องมือคอมไพล์รู้จักตำแหน่งไฟล์ไลบรารี, header, และไบนารีของ ServBay และจะได้ค้นหา dependencies และลิงค์ได้ถูกต้อง
สภาพแวดล้อม ServBay จะต่างกันตามสถาปัตยกรรม CPU ของ Mac (Intel หรือ Apple Silicon/Arm64) กรุณาตรวจสอบและเลือกคำสั่งเหมาะสมกับสถาปัตยกรรมของ ServBay Runtime ปัจจุบัน
ตรวจสอบสถาปัตยกรรม CPU ของ ServBay Runtime
คุณสามารถตรวจสอบสถาปัตยกรรมของไบนารีในโฟลเดอร์ bin
ของ ServBay เช่น ตรวจสอบ bison
:
bash
# รันคำสั่งต่อไปนี้ใน Terminal เพื่อตรวจสอบ
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable arm64
1
2
3
2
3
bash
# รันคำสั่งต่อไปนี้ใน Terminal เพื่อตรวจสอบ
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable x86_64
1
2
3
2
3
เมื่อยืนยันสถาปัตยกรรมแล้ว เลือกสคริปต์สำหรับตั้งค่าสภาพแวดล้อมให้ตรง
การกำหนด environment variables สำหรับคอมไพล์
เปิดหน้าต่าง Terminal ใหม่ แล้วคัดลอกและวางสคริปต์ด้านล่างที่ตรงกับ CPU ของคุณ สคริปต์นี้จะตั้งค่าตำแหน่งโฟลเดอร์และ options ต่างๆ สำหรับสภาพแวดล้อมการคอมไพล์กับ ServBay
bash
# กำหนดจำนวนคอร์ของ CPU เพื่อใช้คอมไพล์แบบขนาน
CPU_NUMBER=$(sysctl -n hw.ncpu)
# ตำแหน่ง root ที่ติดตั้ง ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# ชื่อโฟลเดอร์แพ็คเกจ
SERVBAY_PACKAGE_DIR_NAME="package"
# โฟลเดอร์แพ็คเกจเต็ม
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# โฟลเดอร์เก็บไฟล์ binary ของ ServBay
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# โฟลเดอร์ config ของ ServBay
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# โฟลเดอร์ข้อมูลชั่วคราวและตัวแปร
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# ตำแหน่งติดตั้ง ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# โฟลเดอร์ header ของ ServBay Development Library
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# โฟลเดอร์ไลบรารี
SERVBAY_COMMON_LIB_PATH="${SERVBAY_COMMON_PATH}/lib"
SERVBAY_COMMON_LIBEXEC_PATH="${SERVBAY_COMMON_PATH}/libexec"
SERVBAY_COMMON_SHARE_PATH="${SERVBAY_COMMON_PATH}/share"
SERVBAY_COMMON_MAN_PATH="${SERVBAY_COMMON_PATH}/man"
SERVBAY_COMMON_DOC_PATH="${SERVBAY_COMMON_PATH}/doc"
# โฟลเดอร์ build ปัจจุบัน
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# ข้อมูลเวอร์ชันของ OpenSSL
OPENSSL_SELECTED_VERSION="3.2"
OPENSSL_VERSION="3.2.1"
# ระบุเวอร์ชันต่ำสุดของ macOS ที่ใช้ build
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey ขึ้นไป
# แฟล็กสำหรับระบุสถาปัตยกรรม CPU ที่ build
BUILD_CPU_ARCH="-arch arm64"
BUILD_CPU_ARCH_CMAKE="arm64"
BUILD_MACOS_TARGET="" # Arm64 มักไม่ต้องใช้แฟล็ก -target
# ตั้งค่าตัวแปรสำหรับคอมไพเลอร์และลิงเกอร์
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export LDFLAGS="-Wl,-rpath -Wl,${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_PACKAGE_FULL_PATH} -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# กำหนดเส้นทางค้นหาไฟล์ไบนารี โดย ServBay bin/sbin มาก่อน
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# เส้นทางที่ pkg-config ใช้ค้นหา
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# เพิ่มโฟลเดอร์ bin/sbin ของระบบและ Homebrew ท้าย PATH
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/"
# เพิ่มเส้นทาง OpenSSL ในทั้ง LDFLAGS และ CPPFLAGS
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
echo "ตั้งค่าสภาพแวดล้อมคอมไพล์สำหรับ ServBay Arm64 เรียบร้อย"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
bash
# กำหนดจำนวนคอร์ของ CPU เพื่อใช้คอมไพล์แบบขนาน
CPU_NUMBER=$(sysctl -n hw.ncpu)
# ตำแหน่ง root ที่ติดตั้ง ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# ชื่อโฟลเดอร์แพ็คเกจ
SERVBAY_PACKAGE_DIR_NAME="package"
# โฟลเดอร์แพ็คเกจเต็ม
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# โฟลเดอร์เก็บไฟล์ binary ของ ServBay
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# โฟลเดอร์ config ของ ServBay
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# โฟลเดอร์ข้อมูลชั่วคราวและตัวแปร
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# ตำแหน่งติดตั้ง ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# โฟลเดอร์ header ของ ServBay Development Library
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# โฟลเดอร์ไลบรารี
SERVBAY_COMMON_LIB_PATH="${SERVBAY_COMMON_PATH}/lib"
SERVBAY_COMMON_LIBEXEC_PATH="${SERVBAY_COMMON_PATH}/libexec"
SERVBAY_COMMON_SHARE_PATH="${SERVBAY_COMMON_PATH}/share"
SERVBAY_COMMON_MAN_PATH="${SERVBAY_COMMON_PATH}/man"
SERVBAY_COMMON_DOC_PATH="${SERVBAY_COMMON_PATH}/doc"
# โฟลเดอร์ build ปัจจุบัน
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# ข้อมูลเวอร์ชันของ OpenSSL
OPENSSL_SELECTED_VERSION="1.1.1u"
OPENSSL_VERSION="1.1.1u"
# ระบุเวอร์ชันต่ำสุดของ macOS ที่ใช้ build
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey ขึ้นไป
# แฟล็กสำหรับระบุสถาปัตยกรรม CPU ที่ build
BUILD_CPU_ARCH="-arch x86_64"
BUILD_CPU_ARCH_CMAKE="x86_64"
BUILD_MACOS_TARGET="-target x86_64-apple-macos${BUILD_OS_MIN_VERSION}"
# ตั้งค่าตัวแปรสำหรับคอมไพเลอร์และลิงเกอร์
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export LDFLAGS="-Wl,-rpath -Wl,${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_PACKAGE_FULL_PATH} -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# กำหนดเส้นทางค้นหาไฟล์ไบนารี โดย ServBay bin/sbin มาก่อน
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# เส้นทางที่ pkg-config ใช้ค้นหา
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# เพิ่มโฟลเดอร์ bin/sbin ของระบบและ Homebrew ท้าย PATH
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/"
# เพิ่มเส้นทาง OpenSSL ในทั้ง LDFLAGS และ CPPFLAGS
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
echo "ตั้งค่าสภาพแวดล้อมคอมไพล์สำหรับ ServBay x86_64 เรียบร้อย"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
ข้อควรระวัง: ตัวแปร environment เหล่านี้จะมีผลเฉพาะหน้าต่าง Terminal ปัจจุบัน หากคุณปิดหน้าต่างหรือเปิดใหม่ ต้องตั้งค่าใหม่อีกครั้งด้วย script นี้
ตัวอย่างการคอมไพล์
หลังจากตั้งค่าสภาพแวดล้อมการคอมไพล์ใน Terminal แล้ว คุณสามารถดาวน์โหลดโค้ดและดำเนินการคอมไพล์ได้ ตัวอย่างต่อไปนี้คือการคอมไพล์ซอฟต์แวร์ยอดนิยม
คอมไพล์ ImageMagick
ImageMagick คือไลบรารีสำหรับประมวลผลภาพขั้นสูง ซึ่งเป็น dependency หลักของ PHP imagick
extension โดยปกติ ServBay จะมี ImageMagick ติดตั้งมาให้เรียบร้อยแล้ว ผู้ใช้มักไม่ต้องคอมไพล์เอง ตัวอย่างนี้จึงมีไว้สำหรับแสดงขั้นตอนคอมไพล์โครงการประเภท Autotools (configure/make) ด้วยสภาพแวดล้อม ServBay เท่านั้น
ดาวน์โหลดโค้ด ImageMagick และแตกไฟล์
bash# เปลี่ยนเวอร์ชันตามที่ต้องการได้ wget https://imagemagick.org/archive/releases/ImageMagick-7.1.1-33.tar.gz tar zxvf ImageMagick-7.1.1-33.tar.gz cd ImageMagick-7.1.1-33
1
2
3
4รันสคริปต์
./configure
: รันสคริปต์ configure โดยใช้ environment variables ที่เราตั้งไว้ก่อนหน้า options เช่น--prefix
,--libdir
,--includedir
จะระบุเส้นทางติดตั้งต่างๆ ของ ServBay Development Library และ subfolder ให้ไฟล์ header, library ที่คอมไพล์เสร็จสามารถใช้งานใน ServBay ได้ แก้ค่า option อื่นๆ ตามแนวทาง ImageMagickbash./configure \ --prefix=${SERVBAY_COMMON_PATH} \ --libdir=${SERVBAY_COMMON_LIB_PATH} \ --includedir=${SERVBAY_COMMON_INCLUDE_PATH} \ --oldincludedir=${SERVBAY_COMMON_INCLUDE_PATH} \ --bindir=${SERVBAY_BIN_PATH} \ --sbindir=${SERVBAY_SBIN_PATH} \ --sysconfdir=${SERVBAY_ETC_PATH} \ --datarootdir=${SERVBAY_COMMON_SHARE_PATH} \ --enable-osx-universal-binary=no \ --disable-silent-rules \ --disable-opencl \ --enable-shared \ --enable-static \ --with-freetype=yes \ --with-gvc=no \ --with-modules \ --with-webp=yes \ --with-heic=no \ --without-gslib \ --with-fpx=no \ --without-openexexr \ --with-raw=yes \ --without-lqr \ --without-djvu \ --without-fftw \ --without-pango \ --without-wmf \ --without-x \ --with-gs-font-dir=${SERVBAY_COMMON_SHARE_PATH}/ghostscript/10.02.1/Resource/Font
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30รัน
make
และmake install
:make
จะ compile โค้ดตาม config ที่ตั้งไว้ แนะนำ parameter-j ${CPU_NUMBER}
เพื่อใช้ CPU หลายคอร์ เร่งความเร็ว เมื่อเสร็จแล้วรันmake install
เพื่อติดตั้งไฟล์ไปยังโฟลเดอร์ ServBay Development Librarybashmake -j ${CPU_NUMBER} make install
1
2
คอมไพล์ซอฟต์แวร์ที่ใช้ cmake
สำหรับโครงการที่ใช้ cmake
ขั้นตอนจะแตกต่างจาก Autotools เล็กน้อย ขอยกตัวอย่าง protobuf
(Protocol Buffers)
ดาวน์โหลดและเข้าไปยังโฟลเดอร์ protobuf
กำหนด config ด้วย
cmake
:-S .
คือ source ในปัจจุบัน-B builddir
คือสร้างไฟล์ build ในโฟลเดอร์ builddir ตัวเลือก-DCMAKE_INSTALL_PREFIX
ฯลฯ ทำหน้าที่เหมือนกับ Autotools ติดตั้งไฟล์ไปที่ ServBay Development Library option อื่นๆ ให้ปรับตาม README ของ protobuf เช่น-DCMAKE_MACOSX_RPATH=1
,-DCMAKE_INSTALL_RPATH
ใช้ควบคุม rpath ให้อยู่ในสภาพแวดล้อม ServBaybash# สมมุติอยู่ในโฟลเดอร์ protobuf แล้ว cmake -S . -B builddir \ -DCMAKE_INSTALL_PREFIX=${SERVBAY_COMMON_PATH} \ -DCMAKE_INSTALL_LIBDIR=${SERVBAY_COMMON_LIB_PATH} \ -DCMAKE_INSTALL_INCLUDEDIR=${SERVBAY_COMMON_INCLUDE_PATH} \ -DCMAKE_INSTALL_BINDIR=${SERVBAY_BIN_PATH} \ -DCMAKE_INSTALL_SBINDIR=${SERVBAY_SBIN_PATH} \ -DCMAKE_INSTALL_SYSCONFDIR=${SERVBAY_ETC_PATH} \ -DCMAKE_INSTALL_DATAROOTDIR=${SERVBAY_COMMON_SHARE_PATH} \ -DCMAKE_MACOSX_RPATH=1 \ -DCMAKE_INSTALL_RPATH=${SERVBAY_COMMON_LIB_PATH} \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE \ -DCMAKE_PREFIX_PATH=${SERVBAY_COMMON_PATH} \ -DBUILD_SHARED_LIBS=ON \ -Dprotobuf_BUILD_LIBPROTOC=ON \ -Dprotobuf_BUILD_SHARED_LIBS=ON \ -Dprotobuf_INSTALL_EXAMPLES=OFF \ -Dprotobuf_BUILD_TESTS=OFF \ -Dprotobuf_ABSL_PROVIDER=package \ -Dprotobuf_JSONCPP_PROVIDER=module \ -DCMAKE_CXX_STANDARD=17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21รัน
cmake --build
และcmake --install
: คอมไพล์ด้วยcmake --build builddir
และติดตั้งด้วยcmake --install builddir
จะนำไฟล์เข้าที่ ServBay Development Library ตามที่ config ไว้bashcmake --build builddir -j ${CPU_NUMBER} cmake --install builddir
1
2
คอมไพล์โมดูล PHP
หากต้องการคอมไพล์ extension เพิ่มเติมให้กับ PHP ใน ServBay (เช่น swoole
, redis
, mongodb
ฯลฯ) โปรดดูเอกสารเฉพาะที่นี่:
คอมไพล์โมดูล PostgreSQL
หากต้องการคอมไพล์โมดูลเสริมสำหรับ PostgreSQL ใน ServBay กรุณาดูเอกสารเฉพาะที่นี่:
สรุป
ด้วย ServBay Development Library และการตั้งค่าสภาพแวดล้อมแบบครบถ้วน นักพัฒนาสามารถรีคอมไพล์และปรับแต่งซอฟต์แวร์บน macOS ได้อย่างง่ายดาย เพิ่มความยืดหยุ่นในการตอบสนองความต้องการแต่ละโปรเจกต์ รวมถึงรองรับไลบรารีและเวอร์ชันใหม่ๆ อย่าลืมอ่านคู่มือคอมไพล์ของซอฟต์แวร์แต่ละแพ็คเกจก่อนและปรับ config หรือขั้นตอนตามคำแนะนำของแต่ละโครงการ