Yer Paylaşımlı ÜçlüLeri Kullanma
Linux'ta dinamik kitaplıklar oluşturma
vcpkg kullanarak birçok yapılandırma için kitaplıklar oluşturabilirsiniz. Ancak bu, şu anda Linux ve Mac OS'da paylaşılan kitaplıkları içermez.
Bu, bu platformlarda dinamik kitaplıklarınızı oluşturmak için vcpkg kullanamayacağınız anlamına gelmez! Bu belge, Linux üzerinde kolayca dinamik kitaplıklar oluşturmak için kendi --overlay-triplets
özel üçlülerinizi oluşturma konusunda size yol gösterir.
1. Adım: Özel üçlü dosyaları oluşturma
Zaman kazanmak için var olan x64-linux.cmake
üçlü dosyayı kopyalayın.
~/git$ mkdir custom-triplets
~/git$ cp vcpkg/triplets/x64-linux.cmake custom-triplets/x64-linux-dynamic.cmake
Ve aşağıdaki içerikle eşleşecek şekilde değiştirin custom-triplets/x64-linux-dynamic.cmake
:
# ~/git/custom-triplets/x64-linux-dynamic.cmake
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic) # This changed from static to dynamic
set(VCPKG_CMAKE_SYSTEM_NAME Linux)
2. Adım: Dinamik kitaplıklar oluşturmak için kullanın --overlay-triplets
Dizine --overlay-triplets
üçlüleri custom-triplets
eklemek için seçeneğini kullanın.
~/git$ vcpkg/vcpkg install sqlite3:x64-linux-dynamic --overlay-triplets=custom-triplets
The following packages will be built and installed:
sqlite3[core]:x64-linux-dynamic
Starting package 1/1: sqlite3:x64-linux-dynamic
Building package sqlite3[core]:x64-linux-dynamic...
-- Loading triplet configuration from: /home/victor/git/custom-triplets/x64-linux-dynamic.cmake
-- Downloading https://sqlite.org/2019/sqlite-amalgamation-3280000.zip...
-- Extracting source /home/victor/git/vcpkg/downloads/sqlite-amalgamation-3280000.zip
-- Applying patch fix-arm-uwp.patch
-- Using source at /home/victor/git/vcpkg/buildtrees/sqlite3/src/3280000-6a3ff7ce92
-- Configuring x64-linux-dynamic-dbg
-- Configuring x64-linux-dynamic-rel
-- Building x64-linux-dynamic-dbg
-- Building x64-linux-dynamic-rel
-- Performing post-build validation
-- Performing post-build validation done
Building package sqlite3[core]:x64-linux-dynamic... done
Installing package sqlite3[core]:x64-linux-dynamic...
Installing package sqlite3[core]:x64-linux-dynamic... done
Elapsed time for package sqlite3:x64-linux-dynamic: 44.82 s
Total elapsed time: 44.82 s
The package sqlite3:x64-linux-dynamic provides CMake targets:
find_package(unofficial-sqlite3 CONFIG REQUIRED)
target_link_libraries(main PRIVATE unofficial::sqlite3::sqlite3)
Katman üçlüleri , , vcpkg update
vcpkg upgrade
ve vcpkg remove
kullanırken vcpkg install
özel üçlü dosyalarınızı etkinleştirir.
seçeneği kullanılırken --overlay-triplets
, aşağıdakine benzer bir ileti özel üçlü kullanıldığını size bildirir:
-- Loading triplet configuration from: /home/custom-triplets/x64-linux-dynamic.cmake
Varsayılan üçlüleri geçersiz kılma
Fark etmiş olabileceğiniz gibi, Windows (x86-windows
ve x64-windows
) için varsayılan üçlüler dinamik kitaplıkları yüklerken statik kitaplıklar için bir sonek (-static
) gerekir. Bu, statik kitaplıkların ve x64-osx
tarafından x64-linux
oluşturulduğu Linux ve Mac OS ile farklıdır.
Linux'ta --overlay-triplets
aynı davranışı gerçekleştirmek için varsayılan üçlüleri geçersiz kılmak mümkündür:
x64-linux
: Dinamik kitaplıklar oluşturur,x64-linux-static
: Statik kitaplıklar oluşturur.
1. Adım: Katman üçlülerini oluşturma
Önceki örnekte oluşturulan özel üçlü kullanarak olarak yeniden adlandırın custom-triplets/x64-linux-dynamic.cmake
custom-triplets/x64-linux.cmake
. Ardından, klasörünüzde custom-triplets
varsayılan x64-linux
üçlü (statik kitaplıklar oluşturan) öğesini kopyalayın ve olarak yeniden adlandırınx64-linux-static.cmake
.
~/git$ mv custom-triplets/x64-linux-dynamic.cmake custom-triplets/x64-linux.cmake
~/git$ cp vcpkg/triplets/x64-linux.cmake custom-triplets/x64-linux-static.cmake
2. Adım: Varsayılan üçlüleri geçersiz kılmak için kullanın --overlay-triplets
Dizine --overlay-triplets
üçlüleri custom-triplets
eklemek için seçeneğini kullanın.
~/git$ vcpkg/vcpkg install sqlite3:x64-linux --overlay-triplets=custom-triplets
The following packages will be built and installed:
sqlite3[core]:x64-linux
Starting package 1/1: sqlite3:x64-linux
Building package sqlite3[core]:x64-linux...
-- Loading triplet configuration from: /home/victor/git/custom-triplets/x64-linux.cmake
-- Downloading https://sqlite.org/2019/sqlite-amalgamation-3280000.zip...
-- Extracting source /home/victor/git/vcpkg/downloads/sqlite-amalgamation-3280000.zip
-- Applying patch fix-arm-uwp.patch
-- Using source at /home/victor/git/vcpkg/buildtrees/sqlite3/src/3280000-6a3ff7ce92
-- Configuring x64-linux-dbg
-- Configuring x64-linux-rel
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Performing post-build validation
-- Performing post-build validation done
Building package sqlite3[core]:x64-linux... done
Installing package sqlite3[core]:x64-linux...
Installing package sqlite3[core]:x64-linux... done
Elapsed time for package sqlite3:x64-linux: 44.82 s
Total elapsed time: 44.82 s
The package sqlite3:x64-linux provides CMake targets:
find_package(unofficial-sqlite3 CONFIG REQUIRED)
target_link_libraries(main PRIVATE unofficial::sqlite3::sqlite3)
Varsayılan üçlü özel üçlünüz tarafından maskelenmiştir:
-- Loading triplet configuration from: /home/victor/git/custom-triplets/x64-linux.cmake
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin