Подробное объяснение компиляции исходного кода и установки программного обеспечения Linux.
Подробное объяснение компиляции исходного кода и установки программного обеспечения Linux.

Предисловие

Потому что я занимаюсь разработкой для Linux,Поэтому ежедневный контакт с компиляцией исходного кода является необходимым процессом. Потому что окружающая среда другая,Таким образом, цепочка инструментов компиляции также отличается.,Например, платформа Linux на базе ARM и платформа Linux на базе x86.,Цепочка инструментов компиляции другая.,Если у новичка нет опыта,Если что-то пойдет не так, это будет беспорядок. В этой статье я представлю компиляцию ffmpeg.,Я столкнулся с проблемой в процессе компиляции,Как решить.

Загрузите, скомпилируйте и установите ffmpeg.

скачать

Язык кода:shell
копировать
zh@zh-lpc:~$ mkdir soft
zh@zh-lpc:~$ cd soft/
zh@zh-lpc:~/soft$ ls
zh@zh-lpc:~/soft$
zh@zh-lpc:~/soft$
zh@zh-lpc:~/soft$ git clone https://git.ffmpeg.org/ffmpeg.git
Клонировать в 'ffmpeg'...
remote: Enumerating objects: 7535, done.
remote: Counting objects: 100% (7535/7535), done.
remote: Compressing objects: 100% (6563/6563), done.
remote: Total 634019 (delta 5120), reused 1190 (delta 967)
В принимающем объекте: 100% (634019/634019), 155.59 MiB | 190.00 KiB/s, Заканчивать.
иметь дело с delta середина: 100% (509013/509013), Заканчивать.
zh@zh-lpc:~/soft$
zh@zh-lpc:~/soft$
zh@zh-lpc:~/soft$ ls
ffmpeg
zh@zh-lpc:~/soft$
zh@zh-lpc:~/soft$
zh@zh-lpc:~/soft$ cd ffmpeg/
zh@zh-lpc:~/soft/ffmpeg$ ls
Changelog  CONTRIBUTING.md  COPYING.LGPLv2.1  doc      INSTALL.md   libavfilter  libpostproc    LICENSE.md   presets    tests
compat     COPYING.GPLv2    COPYING.LGPLv3    ffbuild  libavcodec   libavformat  libswresample  MAINTAINERS  README.md  tools
configure  COPYING.GPLv3    CREDITS           fftools  libavdevice  libavutil    libswscale     Makefile     RELEASE
zh@zh-lpc:~/soft/ffmpeg$

компилировать

Язык кода:shell
копировать
 ./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex  --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc --host-cflags= --host-ldflags= --disable-x86asm

Что-то пошло не так

ERROR: libfdk_aac not found

скачать:

https://udomain.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-2.0.2.tar.gz

Выполнить по порядку:

Язык кода:shell
копировать
./configure
make
make install

ERROR: speex not found using pkg-config

скачать:https://www.speex.org/downloads/

Язык кода:shell
копировать
zh@zh-lpc:~$ ls ~/soft/speex-1.2.0.tar.gz
/home/zh/soft/speex-1.2.0.tar.gz
zh@zh-lpc:~$

Выполнить по порядку:

Язык кода:shell
копировать
./configure
make
make install

ERROR: libx264 not found

libx264Официальный сайт:https://www.videolan.org/developers/x264.html

Язык кода:shell
копировать
zh@zh-lpc:~/soft$ git clone https://code.videolan.org/videolan/x264.git
Клонировать в 'x264'...
remote: Enumerating objects: 22884, done.
remote: Counting objects: 100% (416/416), done.
remote: Compressing objects: 100% (279/279), done.
remote: Total 22884 (delta 202), reused 330 (delta 137), pack-reused 22468
В принимающем объекте: 100% (22884/22884), 6.12 MiB | 1.78 MiB/s, Заканчивать.
иметь дело с delta середина: 100% (18842/18842), Заканчивать.
zh@zh-lpc:~/soft$

zh@zh-lpc:~/soft/x264$ ./configure
Found no assembler
Minimum version is nasm-2.13
If you really want to compile without asm, configure with --disable-asm.
zh@zh-lpc:~/soft/x264$
zh@zh-lpc:~/soft/x264$ ./configure  --disable-asm
platform:       X86_64
byte order:     little-endian
system:         LINUX
cli:            yes
libx264:        internal
shared:         no
static:         no
bashcompletion: yes
asm:            no
interlaced:     yes
avs:            avxsynth
lavf:           no
ffms:           no
mp4:            no
gpl:            yes
thread:         posix
opencl:         yes
filters:        crop select_every
lto:            no
debug:          no
gprof:          no
strip:          no
PIC:            no
bit depth:      all
chroma format:  all

You can run 'make' or 'make fprofiled' now.
zh@zh-lpc:~/soft/x264$
Язык кода:shell
копировать
make
make install

Некоторые лучшие решения:

Язык кода:shell
копировать
# libfdk-aac
sudo apt-get install libfdk-aac-dev

# speex
sudo apt-get install libspeex-dev

# x264
sudo apt-get install libx264-dev

# x265
sudo apt-get install libx265-dev libnuma-dev

Коллекция:

Язык кода:shell
копировать
sudo apt-get install libfdk-aac-dev  libspeex-dev libx264-dev libx265-dev libnuma-dev

Max OS:

Язык кода:shell
копировать
brew install fdk-aac

Если появляется что-то похожее на следующее, это указывает на успех:

Затемкомпилировать:

Если ваш компьютер достаточно мощный, вы можете использовать многопоточность, компилировать

Язык кода:shell
копировать
make -j8

Установить:

Язык кода:shell
копировать
sudo make install

Просмотр установленного контента

Вот всё установлено:

Язык кода:shell
копировать
zh@zh-lpc:~/soft/ffmpeg$ cd /usr/local/ffmpeg/
zh@zh-lpc:/usr/local/ffmpeg$ ls
bin  include  lib  share
zh@zh-lpc:/usr/local/ffmpeg$
zh@zh-lpc:/usr/local/ffmpeg$
zh@zh-lpc:/usr/local/ffmpeg$ tree
.
├── bin
│   ├── ffmpeg
│   └── ffprobe
├── include
│   ├── libavcodec
│   │   ├── ac3_parser.h
│   │   ├── adts_parser.h
│   │   ├── avcodec.h
│   │   ├── avdct.h
│   │   ├── avfft.h
│   │   ├── bsf.h
│   │   ├── codec_desc.h
│   │   ├── codec.h
│   │   ├── codec_id.h
│   │   ├── codec_par.h
│   │   ├── d3d11va.h
│   │   ├── defs.h
│   │   ├── dirac.h
│   │   ├── dv_profile.h
│   │   ├── dxva2.h
│   │   ├── jni.h
│   │   ├── mediacodec.h
│   │   ├── packet.h
│   │   ├── qsv.h
│   │   ├── vdpau.h
│   │   ├── version.h
│   │   ├── videotoolbox.h
│   │   ├── vorbis_parser.h
│   │   └── xvmc.h
│   ├── libavdevice
│   │   ├── avdevice.h
│   │   └── version.h
│   ├── libavfilter
│   │   ├── avfilter.h
│   │   ├── buffersink.h
│   │   ├── buffersrc.h
│   │   └── version.h
│   ├── libavformat
│   │   ├── avformat.h
│   │   ├── avio.h
│   │   └── version.h
│   ├── libavutil
│   │   ├── adler32.h
│   │   ├── aes_ctr.h
│   │   ├── aes.h
│   │   ├── attributes.h
│   │   ├── audio_fifo.h
│   │   ├── avassert.h
│   │   ├── avconfig.h
│   │   ├── avstring.h
│   │   ├── avutil.h
│   │   ├── base64.h
│   │   ├── blowfish.h
│   │   ├── bprint.h
│   │   ├── bswap.h
│   │   ├── buffer.h
│   │   ├── camellia.h
│   │   ├── cast5.h
│   │   ├── channel_layout.h
│   │   ├── common.h
│   │   ├── cpu.h
│   │   ├── crc.h
│   │   ├── des.h
│   │   ├── detection_bbox.h
│   │   ├── dict.h
│   │   ├── display.h
│   │   ├── dovi_meta.h
│   │   ├── downmix_info.h
│   │   ├── encryption_info.h
│   │   ├── error.h
│   │   ├── eval.h
│   │   ├── ffversion.h
│   │   ├── fifo.h
│   │   ├── file.h
│   │   ├── film_grain_params.h
│   │   ├── frame.h
│   │   ├── hash.h
│   │   ├── hdr_dynamic_metadata.h
│   │   ├── hmac.h
│   │   ├── hwcontext_cuda.h
│   │   ├── hwcontext_d3d11va.h
│   │   ├── hwcontext_drm.h
│   │   ├── hwcontext_dxva2.h
│   │   ├── hwcontext.h
│   │   ├── hwcontext_mediacodec.h
│   │   ├── hwcontext_opencl.h
│   │   ├── hwcontext_qsv.h
│   │   ├── hwcontext_vaapi.h
│   │   ├── hwcontext_vdpau.h
│   │   ├── hwcontext_videotoolbox.h
│   │   ├── hwcontext_vulkan.h
│   │   ├── imgutils.h
│   │   ├── intfloat.h
│   │   ├── intreadwrite.h
│   │   ├── lfg.h
│   │   ├── log.h
│   │   ├── lzo.h
│   │   ├── macros.h
│   │   ├── mastering_display_metadata.h
│   │   ├── mathematics.h
│   │   ├── md5.h
│   │   ├── mem.h
│   │   ├── motion_vector.h
│   │   ├── murmur3.h
│   │   ├── opt.h
│   │   ├── parseutils.h
│   │   ├── pixdesc.h
│   │   ├── pixelutils.h
│   │   ├── pixfmt.h
│   │   ├── random_seed.h
│   │   ├── rational.h
│   │   ├── rc4.h
│   │   ├── replaygain.h
│   │   ├── ripemd.h
│   │   ├── samplefmt.h
│   │   ├── sha512.h
│   │   ├── sha.h
│   │   ├── spherical.h
│   │   ├── stereo3d.h
│   │   ├── tea.h
│   │   ├── threadmessage.h
│   │   ├── timecode.h
│   │   ├── time.h
│   │   ├── timestamp.h
│   │   ├── tree.h
│   │   ├── twofish.h
│   │   ├── tx.h
│   │   ├── version.h
│   │   ├── video_enc_params.h
│   │   └── xtea.h
│   ├── libpostproc
│   │   ├── postprocess.h
│   │   └── version.h
│   ├── libswresample
│   │   ├── swresample.h
│   │   └── version.h
│   └── libswscale
│       ├── swscale.h
│       └── version.h
├── lib
│   ├── libavcodec.a
│   ├── libavcodec.so -> libavcodec.so.59.7.102
│   ├── libavcodec.so.59 -> libavcodec.so.59.7.102
│   ├── libavcodec.so.59.7.102
│   ├── libavdevice.a
│   ├── libavdevice.so -> libavdevice.so.59.0.101
│   ├── libavdevice.so.59 -> libavdevice.so.59.0.101
│   ├── libavdevice.so.59.0.101
│   ├── libavfilter.a
│   ├── libavfilter.so -> libavfilter.so.8.7.101
│   ├── libavfilter.so.8 -> libavfilter.so.8.7.101
│   ├── libavfilter.so.8.7.101
│   ├── libavformat.a
│   ├── libavformat.so -> libavformat.so.59.5.100
│   ├── libavformat.so.59 -> libavformat.so.59.5.100
│   ├── libavformat.so.59.5.100
│   ├── libavutil.a
│   ├── libavutil.so -> libavutil.so.57.4.101
│   ├── libavutil.so.57 -> libavutil.so.57.4.101
│   ├── libavutil.so.57.4.101
│   ├── libpostproc.a
│   ├── libpostproc.so -> libpostproc.so.56.0.100
│   ├── libpostproc.so.56 -> libpostproc.so.56.0.100
│   ├── libpostproc.so.56.0.100
│   ├── libswresample.a
│   ├── libswresample.so -> libswresample.so.4.0.100
│   ├── libswresample.so.4 -> libswresample.so.4.0.100
│   ├── libswresample.so.4.0.100
│   ├── libswscale.a
│   ├── libswscale.so -> libswscale.so.6.1.100
│   ├── libswscale.so.6 -> libswscale.so.6.1.100
│   ├── libswscale.so.6.1.100
│   └── pkgconfig
│       ├── libavcodec.pc
│       ├── libavdevice.pc
│       ├── libavfilter.pc
│       ├── libavformat.pc
│       ├── libavutil.pc
│       ├── libpostproc.pc
│       ├── libswresample.pc
│       └── libswscale.pc
└── share
    ├── ffmpeg
    │   ├── examples
    │   │   ├── avio_list_dir.c
    │   │   ├── avio_reading.c
    │   │   ├── decode_audio.c
    │   │   ├── decode_video.c
    │   │   ├── demuxing_decoding.c
    │   │   ├── encode_audio.c
    │   │   ├── encode_video.c
    │   │   ├── extract_mvs.c
    │   │   ├── filter_audio.c
    │   │   ├── filtering_audio.c
    │   │   ├── filtering_video.c
    │   │   ├── http_multiclient.c
    │   │   ├── hw_decode.c
    │   │   ├── Makefile
    │   │   ├── metadata.c
    │   │   ├── muxing.c
    │   │   ├── qsvdec.c
    │   │   ├── README
    │   │   ├── remuxing.c
    │   │   ├── resampling_audio.c
    │   │   ├── scaling_video.c
    │   │   ├── transcode_aac.c
    │   │   ├── transcoding.c
    │   │   ├── vaapi_encode.c
    │   │   └── vaapi_transcode.c
    │   ├── ffprobe.xsd
    │   ├── libvpx-1080p50_60.ffpreset
    │   ├── libvpx-1080p.ffpreset
    │   ├── libvpx-360p.ffpreset
    │   ├── libvpx-720p50_60.ffpreset
    │   └── libvpx-720p.ffpreset
    └── man
        ├── man1
        │   ├── ffmpeg.1
        │   ├── ffmpeg-all.1
        │   ├── ffmpeg-bitstream-filters.1
        │   ├── ffmpeg-codecs.1
        │   ├── ffmpeg-devices.1
        │   ├── ffmpeg-filters.1
        │   ├── ffmpeg-formats.1
        │   ├── ffmpeg-protocols.1
        │   ├── ffmpeg-resampler.1
        │   ├── ffmpeg-scaler.1
        │   ├── ffmpeg-utils.1
        │   ├── ffprobe.1
        │   └── ffprobe-all.1
        └── man3
            ├── libavcodec.3
            ├── libavdevice.3
            ├── libavfilter.3
            ├── libavformat.3
            ├── libavutil.3
            ├── libswresample.3
            └── libswscale.3

18 directories, 220 files
zh@zh-lpc:/usr/local/ffmpeg$

Тест прошел успешно?

Язык кода:shell
копировать
zh@zh-lpc:/usr/local/ffmpeg$ cd bin/
zh@zh-lpc:/usr/local/ffmpeg/bin$ ls
ffmpeg  ffprobe
zh@zh-lpc:/usr/local/ffmpeg/bin$
zh@zh-lpc:/usr/local/ffmpeg/bin$ ./ffmpeg -version
./ffmpeg: error while loading shared libraries: libavdevice.so.59: cannot open shared object file: No such file or directory
zh@zh-lpc:/usr/local/ffmpeg/bin$

Настройте динамическую библиотеку:

Язык кода:shell
копировать
sudo vim /etc/ld.so.conf.d/libc.conf

Запишите каталог lib в вашем собственном каталоге установки в

Язык кода:shell
копировать
zh@zh-lpc:/usr/local/ffmpeg$ cat /etc/ld.so.conf.d/libc.conf
# libc default configuration
/usr/local/lib
/usr/local/ffmpeg/lib

Затем загрузите его:

Язык кода:shell
копировать
sudo ldconfig

Настройка переменных среды

Язык кода:shell
копировать
vim ~/.bashrc

Добавлено в конце:

Язык кода:shell
копировать
#FFMPEG
export PATH=$PATH:/usr/local/ffmpeg/bin

Вступает в силу немедленно:

Язык кода:shell
копировать
source ~/.bashrc

Затем вы можете выполнить:

Язык кода:shell
копировать
zh@zh-lpc:~$ ffmpeg -h
ffmpeg version N-103553-g5e7e2e5031 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
  configuration: --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc --host-cflags= --host-ldflags= --disable-x86asm
  libavutil      57.  4.101 / 57.  4.101
  libavcodec     59.  7.102 / 59.  7.102
  libavformat    59.  5.100 / 59.  5.100
  libavdevice    59.  0.101 / 59.  0.101
  libavfilter     8.  7.101 /  8.  7.101
  libswscale      6.  1.100 /  6.  1.100
  libswresample   4.  0.100 /  4.  0.100
  libpostproc    56.  0.100 / 56.  0.100

Для ffplay нет решения

Вы можете взглянуть на сгенерированную конфигурацию:

Есть символ !

Язык кода:shell
копировать
zh@zh-lpc:~/soft/ffmpeg$ cat ffbuild/config.mak |grep "CONFIG_FFPLAY"
!CONFIG_FFPLAY=yes
zh@zh-lpc:~/soft/ffmpeg$

И нет компиляции в исполняемый файл ffplay

Язык кода:shell
копировать
zh@zh-lpc:/usr/local/ffmpeg$ tree
.
├── bin
│   ├── ffmpeg
│   └── ffprobe

скачатьSDL2:

http://www.libsdl.org/download-2.0.php

Затем разархивируйте и установите

Язык кода:shell
копировать
./configure
make
make install

Затем повторите выполнение:

Язык кода:shell
копировать
 ./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex  --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc --host-cflags= --host-ldflags= --disable-x86asm

Выяснилось после повторного выполнения! Больше не надо:

Язык кода:shell
копировать
zh@zh-lpc:~/soft/ffmpeg$ cat ffbuild/config.mak |grep "CONFIG_FFPLAY"
CONFIG_FFPLAY=yes
zh@zh-lpc:~/soft/ffmpeg$

Затемруководитькомпилировать Установить:

Язык кода:shell
копировать
make -j8

Затем Установить:

Язык кода:shell
копировать
sudo make install

Вы можете видеть, что он установлен, а также можете выполнить:

Язык кода:shell
копировать
zh@zh-lpc:~$ ls /usr/local/ffmpeg/bin/
ffmpeg  ffplay  ffprobe
zh@zh-lpc:~$

zh@zh-lpc:~$
zh@zh-lpc:~$ ffplay
ffplay version N-103553-g5e7e2e5031 Copyright (c) 2003-2021 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
  configuration: --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc --host-cflags= --host-ldflags= --disable-x86asm
  libavutil      57.  4.101 / 57.  4.101
  libavcodec     59.  7.102 / 59.  7.102
  libavformat    59.  5.100 / 59.  5.100
  libavdevice    59.  0.101 / 59.  0.101
  libavfilter     8.  7.101 /  8.  7.101
  libswscale      6.  1.100 /  6.  1.100
  libswresample   4.  0.100 /  4.  0.100
  libpostproc    56.  0.100 / 56.  0.100
Simple media player
usage: ffplay [options] input_file

sdl2 отсутствует

При использовании ffplay player в Ubuntu:

Язык кода:shell
копировать
Решение:

https://www.libsdl.org/download-2.0.php скачатьхороший

1. Выполните следующую установку

sudo apt-get install libsdl2-dev

sudo apt-get install libsdl2-2.0-0

sudo apt-get install libsdl2-image-dev

sudo apt-get install libsdl2-image-2.0-0

sudo apt-get install libsdl2-mixer-dev

sudo apt-get install libsdl2-mixer-2.0-0

sudo apt-get install libsdl2-net-dev

sudo apt-get install libsdl2-net-2.0-0

2. Введите каталог исходного файла установки SDL:

cd ~/Documents/SDL2-2.0.12

3. Удалить SDL

sudo make uninstall

4. Очистка:

make clean && make distclean

5. Перенастройте компиляцию для установки SDL2:

./configure --prefix=/usr/local --enable-shared --disable-static && make -j 4 && sudo make install

6. сновакомпилироватьffmpegВот и все
Язык кода:shell
копировать
sudo apt-get install libsdl2-dev libsdl2-2.0-0 libsdl2-image-dev libsdl2-image-2.0-0 libsdl2-mixer-dev libsdl2-mixer-2.0-0 libsdl2-net-dev libsdl2-net-2.0-0

Подвести итог

Пока это предполагаеткомпилироватьиз,должен пройти через:configure, make,make install Эти процессы. Когда вы сталкиваетесь с проблемой, вы можете решить ее только шаг за шагом. Вы можете решить любую проблему, с которой столкнетесь.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose